我最近遇到一个问题,这是一个EditText的默认下划线栏从默认的黑色的颜色为白色改变。把手都强调
我用这个解决方案,它通过改变EditText上的风格在我看来,最好的做法:
的EditText
<android.support.v7.widget.AppCompatEditText
android:id="@+id/nom"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:hint="@string/Activity_Main_EditText_Nom"
android:imeOptions="actionNext"
android:paddingBottom="10dp"
android:paddingLeft="10dp"
android:paddingRight="10dp"
android:paddingTop="10dp"
android:textColor="@android:color/white"
android:textColorHint="@color/activityBackground"
android:theme="@style/EditTextStyle"
android:visibility="gone"
/>
style.xml
<style name="MyTheme" parent="Theme.AppCompat.Light.NoActionBar">
<item name="android:windowDisablePreview">true</item>
<item name="android:windowBackground">@color/activityBackground</item>
<item name="windowActionBar">false</item>
<item name="actionMenuTextColor">@android:color/white</item>
<item name="android:windowNoTitle">true</item>
<item name="colorPrimary">@color/colorPrimary</item>
<item name="colorPrimaryDark">@color/colorPrimaryDark</item>
<item name="colorAccent">@color/colorAccent</item>
</style>
<style name="EditTextStyle" parent="Widget.AppCompat.EditText">
<item name="colorControlNormal">@android:color/white</item>
<item name="colorControlActivated">@color/colorAccent</item>
<item name="colorControlHighlight">@color/colorAccent</item>
</style>
有效 !但它也加入到EditText上下划线栏的手柄......
任何想法?
回答
通过与@rafsanahmad007讨论,我们终于得到了最终解决方案。
style.xml
<resources>
<style name="MyTheme" parent="Theme.AppCompat.Light.NoActionBar">
<item name="android:windowDisablePreview">true</item>
<item name="android:windowBackground">@color/activityBackground</item>
<item name="windowActionBar">false</item>
<item name="actionMenuTextColor">@android:color/white</item>
<item name="android:windowNoTitle">true</item>
<item name="colorPrimary">@color/colorPrimary</item>
<item name="colorPrimaryDark">@color/colorPrimaryDark</item>
<item name="colorAccent">@color/colorAccent</item>
</style>
<style name="MyTheme.EditText" parent="MyTheme">
<item name="colorControlNormal">@android:color/white</item>
<item name="colorControlActivated">@color/colorAccent</item>
<item name="colorControlHighlight">@color/colorAccent</item>
</style>
</resources>
应用MyTheme
到应用程序中,像往常一样。当你想调整的EditText
只是添加到它:
的EditText
<EditText
...
android:theme="@style/MyTheme.EditText"
...
/>
您可以检查这个答案的http:/ /堆栈溢出。com/questions/37824790/how-to-remove-underline-below-edittext-indicator –
@visheshchandra感谢这个链接,这些处理程序/指标/游标有很多名字,我没有遇到过这个!不幸的是,改变EditText的颜色过滤器会带来一些问题,比如禁用从白色到colorAccent的颜色选择等。 –
一般提示:除非你想子类化EditText,否则你不需要使用AppCompatEditText。 – Sufian