我试图改变我的EditText的下划线颜色与this thread.改变颜色的EditText的下划线
的帮助下,我做了同样的事情 - 这是EditText
设置为@drawable/edt_bg_selector
的android:background
。
<EditText
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:ems="10"
android:id="@+id/editText4"
android:layout_weight="1"
android:elevation="0dp"
android:background="@drawable/edt_bg_selector" />
我edt_bg_selector
:
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:state_focused="true" android:drawable="@drawable/edt_bg_selected" />
<item android:state_focused="false" android:drawable="@drawable/edt_bg_normal" />
</selector>
... edt_bg_normal.xml
...
<?xml version="1.0" encoding="utf-8"?>
<layer-list xmlns:android="http://schemas.android.com/apk/res/android" >
<item
android:bottom="1dp"
android:left="-2dp"
android:right="-2dp"
android:top="-2dp">
<shape android:shape="rectangle" >
<stroke
android:width="1px"
android:color="@color/colorWhite" />
<solid android:color="#00FFFFFF" />
<padding
android:bottom="5dp"
android:left="5dp"
android:right="5dp"
android:top="5dp" />
</shape>
</item>
</layer-list>
...最后,edt_bg_selected.xml
。
<?xml version="1.0" encoding="utf-8"?>
<layer-list xmlns:android="http://schemas.android.com/apk/res/android" >
<item
android:bottom="1dp"
android:left="-2dp"
android:right="-2dp"
android:top="-2dp">
<shape android:shape="rectangle" >
<stroke
android:width="1px"
android:color="@color/colorWhite" />
<solid android:color="#00FFFFFF" />
<padding
android:bottom="5dp"
android:left="5dp"
android:right="5dp"
android:top="5dp" />
</shape>
</item>
</layer-list>
有了这个代码,我可以看到下划线的颜色变为白色Android Studio中的设计编辑器。但是当我在Android设备上运行这个项目时,更改还没有完成。选中的EditText
的下划线是我的primaryColor
,未选中的EditText
是黑色。
的Android工作室设计编辑器:
项目运行Android设备上:
这是否有什么与我的应用程序的选择的主题?或者我错过了什么?
我试过了,它也有效。只有一件事 - 在Android 6.0 Marshmallow(API 23)context.getResources()。getColor()已弃用,因此我使用了ContextCompat.getColor()。我的问题的解决方案是在我的评论上述 谢谢 – MoOoG
我认为,当你失去焦点,它保持与颜色(应返回到默认的颜色) –