如何在XML中修改用户输入文本颜色?输入框文字与背景同色无法识别
解决EditText输入文字与背景颜色冲突的问题
嗨,我来帮你搞定这个输入文字看不清的问题~
问题原因分析
你当前使用的是Theme.AppCompat.Light.DarkActionBar浅色主题,这类主题下EditText的默认输入文字颜色是黑色。而你的EditText背景设置为#11000000(半透明黑色),黑色文字搭配暗色调背景自然会导致看不清——这不是你手动修改设置导致的,是主题自带的默认样式在起作用。
快速解决方案(直接修改布局)
最简单的办法就是给你的EditText直接添加android:textColor属性,指定白色或你想要的亮色,比如:
<EditText android:id="@+id/editText" android:layout_width="wrap_content" android:layout_height="45sp" android:layout_alignParentTop="true" android:layout_alignParentEnd="true" android:layout_marginTop="293dp" android:layout_marginEnd="87sp" android:autofillHints="" android:background="#11000000" android:drawableStart="@drawable/ic_action_user" android:ems="10" android:hint="@string/username" android:inputType="textPersonName" android:textColorLink="#808080" android:textColorHint="#808080" <!-- 添加这行设置输入文字为白色 --> android:textColor="#FFFFFF"/>
全局解决方案(修改主题样式)
如果你的APP里还有其他类似的EditText需要统一设置文字颜色,可以修改style.xml,给主题添加全局EditText样式:
<resources> <style name="AppTheme" parent="Theme.AppCompat.Light.DarkActionBar"> <item name="colorPrimary">@color/colorPrimary</item> <item name="colorPrimaryDark">@color/colorPrimaryDark</item> <item name="colorAccent">@color/colorAccent</item> <!-- 指定自定义EditText样式 --> <item name="android:editTextStyle">@style/CustomEditTextStyle</item> </style> <!-- 自定义EditText样式,设置文字颜色 --> <style name="CustomEditTextStyle" parent="@android:style/Widget.EditText"> <item name="android:textColor">#FFFFFF</item> </style> </resources>
更灵活的方式(使用颜色资源)
你也可以先在color.xml里定义一个专门的颜色:
<?xml version="1.0" encoding="utf-8"?> <resources> <color name="colorPrimary">#008577</color> <color name="colorPrimaryDark">#00574B</color> <color name="colorAccent">#D81B60</color> <!-- 添加EditText输入文字颜色 --> <color name="editTextInputColor">#FFFFFF</color> </resources>
然后在布局里引用这个颜色:
android:textColor="@color/editTextInputColor"
这样后续要调整颜色时,只需要修改color.xml里的定义即可,不用逐个修改布局文件。
内容的提问来源于stack exchange,提问作者ImDineshSharma
相关产品推荐
相关产品推荐

