我正在使用 appcompat v7 以在 Android 5 及更低版本上获得一致的外观。它工作得很好。但是我无法弄清楚如何更改 EditTexts 的底线颜色和强调颜色。可能吗?
我尝试定义自定义 android:editTextStyle
(参见下文),但我只成功更改了完整的背景颜色或文本颜色,但没有更改底线或强调色。是否有要使用的特定属性值?我是否必须通过 android:background
属性使用自定义可绘制图像?不能用hexa指定颜色吗?
<style name="Theme.App.Base" parent="Theme.AppCompat.Light.DarkActionBar">
<item name="android:editTextStyle">@style/Widget.App.EditText</item>
</style>
<style name="Widget.App.EditText" parent="Widget.AppCompat.EditText">
???
</style>
根据 android API 21 来源,带有 Material 设计的 EditTexts 似乎使用 colorControlActivated
和 colorControlNormal
。因此,我尝试在之前的样式定义中覆盖这些属性,但没有效果。可能 appcompat 不使用它。不幸的是,我找不到最新版本的带有 Material 设计的 appcompat 的来源。
最佳答案
最后,我找到了解决方案。它只是在你的应用主题定义中覆盖 colorControlActivated
、colorControlHighlight
和 colorControlNormal
的值,而不是你的 edittext 样式。然后,考虑将此主题用于您想要的任何 Activity 。下面是一个例子:
<style name="Theme.App.Base" parent="Theme.AppCompat.Light.DarkActionBar">
<item name="colorControlNormal">#c5c5c5</item>
<item name="colorControlActivated">@color/accent</item>
<item name="colorControlHighlight">@color/accent</item>
</style>
https://stackoverflow.com/questions/26574328/