我试图在this thread.
的帮助下更改EditText的下划线颜色我做了同样的事情 - 这是EditText
,android:background
设置为@drawable/edt_bg_selector
。
<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的Design Editor中下划线的颜色已更改为白色。但是,当我在Android设备上运行此项目时,尚未进行更改。选定的EditText
下划线是我的primaryColor
,未选中的EditText
是黑色的。
Android工作室设计编辑:
项目在Android设备上运行:
这与我的应用程序的选定主题有什么关系吗?或者我错过了什么?
答案 0 :(得分:8)
<EditText
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:hint="Something or Other"
android:backgroundTint="@android:color/holo_green_light" />
答案 1 :(得分:6)
将这些属性添加到您的活动主题:
<style name="AppTheme" parent="Theme.AppCompat">
<item name="colorControlNormal">@android:color/white</item>
<item name="colorControlActivated">@android:color/white</item>
<item name="colorControlHighlight">@android:color/white</item>
</style>
答案 2 :(得分:2)
以编程方式实现此行:
inputText.getBackground().setColorFilter(ContextCompat.getColor(this, R.color.error), PorterDuff.Mode.SRC_ATOP);
inputText
是您的EditText
对象。
答案 3 :(得分:0)
好的,我不知道发生了什么,但我上面发布的代码是有效的。我没有改变任何东西,但我重新启动了Android工作室。
在我发布之前,我在Build&gt;下进行了项目重建。重建项目并没有帮助。
如果有人可以解释为什么会发生这种情况或者在这种情况下该怎么做,我将不胜感激,但问题已经解决了。