Android colorControlNormal xml属性在Lollipop之前不起作用

时间:2015-03-05 16:24:34

标签: android android-5.0-lollipop android-support-library android-appcompat material-design

我一直在尝试更改底部EditText行的颜色,但我的EditText仍然不想改变颜色,但是它已经改变了颜色。使用Material中的样式。

我已尝试根据这些答案更改颜色:link

所以我的EditText形式为Material,但不是我设定的颜色。

我已将appcompat-v7放入我的Gradle配置文件中,并且它已经用于主色。

<style name="AppBaseTheme.MiddleTheme.Widget.EditText" parent="Theme.AppCompat.Light">
    <item name="colorPrimary">@color/middle_primary</item>
    <!-- Those 3 lines are staying in red war in IntelliJ but it does build the project -->
    <item name="android:colorControlNormal">@color/middle_sqool_primary</item>
    <item name="android:colorControlActivated">@color/middle_sqool_primary</item>
    <item name="android:colorControlHighlight">@color/middle_sqool_primary</item>            
</style>

3 个答案:

答案 0 :(得分:8)

您必须在应用主题(或活动主题)中设置colorControlActivatedcolorControlHighlightcolorControlNorma l,而不是编辑文字样式。

这样的事情:

<style name="Theme.App.Base" parent="Theme.AppCompat.Light">
    <item name="colorControlNormal">@color/middle_sqool_primary</item>
    <item name="colorControlActivated">@color/middle_sqool_primary</item>
    <item name="colorControlHighlight">@color/middle_sqool_primary</item>
</style>

答案 1 :(得分:2)

要解决此问题,请尝试使用android.support.v7.widget.AppCompatEditText而不是EditText。您应该始终将其用于以编程方式创建的视图。

很确定你做到了,但要确保你在values文件夹中编辑主题,而不是values-v21一个(如果有的话)。

答案 2 :(得分:0)

我有类似的问题。想要改变菜单项的高亮颜色。这些属性都不起作用(Support Library v25.0.0)。

允许我在Pre-L设备上更改颜色的唯一属性是:

<item name="actionBarItemBackground">@drawable/YOUR_DRAWABLE</item>

我停止寻找进一步的解决方法,因为很明显支持库还没有为生产代码做好准备。