【问题标题】:Android colorControlNormal xml attributes doesn't work pre-LollipopAndroid colorControlNormal xml 属性在棒棒糖之前不起作用
【发布时间】:2015-05-07 02:35:47
【问题描述】:

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

我尝试按照以下答案更改颜色:link

所以我有一个带有Material 表单的EditText,但没有我设置的颜色。

我已将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>

【问题讨论】:

  • 您是否尝试从项目名称中删除android:?就像在colorPrimary
  • 是的,我做到了,它删除了 IDE 中的红色警告,但它仍然没有对视图进行更改(一旦运行)
  • 您找到解决方案了吗?我有同样的问题吗?
  • @GrahamBorland 考虑创建一个MCVE
  • @zlgdev 必须尝试使用​​EditTextActivity 主题设置此style。理想情况下,您必须将此 style 设置为您的 EditText,例如 'style="@style/AppBaseTheme.MiddleTheme.Widget.EditText"'

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


【解决方案1】:

您必须在您的应用主题(或活动主题)中设置colorControlActivatedcolorControlHighlightcolorControlNormal,而不是在您的edittext 样式中。

类似这样的:

<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>

【讨论】:

  • 这不会做任何改变。
  • 您确定您的活动使用的是这种样式吗?
  • 所以要设置 textColor 的样式,我必须覆盖 EditText 样式,但在应用程序主题中使用 colorControlNormal。这使得与同一控件相关的样式有两种不同的样式。有没有更好的办法?
【解决方案2】:

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

非常确定您成功了,但请确保您正在编辑 values 文件夹中的主题,而不是 values-v21 文件夹中的主题(如果有的话)。

【讨论】:

    【解决方案3】:

    我遇到了类似的问题。想要更改菜单项的突出显示颜色。这些属性都不起作用(支持库 v25.0.0)。

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

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

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

    【讨论】:

      猜你喜欢
      • 2015-09-01
      • 2015-12-24
      • 2015-01-12
      • 2017-06-24
      • 1970-01-01
      • 2018-12-07
      • 1970-01-01
      • 1970-01-01
      • 2016-01-20
      相关资源
      最近更新 更多