【问题标题】:Android textColor selectorAndroid 文本颜色选择器
【发布时间】:2012-12-14 16:04:20
【问题描述】:

我正在尝试使用以下代码为TextView textColor 设置选择器:

<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
    <item android:state_enabled="false" android:color="?android:attr/textColorTertiary" />
    <item android:color="?android:attr/textColorPrimary"/>
</selector>

但是,颜色始终显示为red,而不是theme colors。如果我输入硬编码颜色,一切似乎都正常。 (例如&lt;item android:state_enabled="false" android:color="#666666" /&gt;)。

问题是什么以及如何解决?附言如果有人知道如何为列表中的禁用项目设置主题的默认禁用颜色,请分享,这就是我想要实现的。谢谢。

【问题讨论】:

  • 我有同样的问题,在 4.1 上可以重现,但在较新的版本上似乎很好(例如黑色主题上的黑色)。 ?android:attr/textColorPrimaryInverse 看起来是红色的,但它不应该。我将主题中的 android:textColorPrimaryInverse 重新定义为自定义选择器,但它仍然是红色的。
  • 您找到解决方案了吗?我正在尝试使用带有 ?android:attr/textColor 的选择器并遇到类似的问题

标签: android android-layout android-listview android-theme


【解决方案1】:

据我所知,您可能必须在选择器中使用 3 个状态。

state enabled
state focused
state pressed 

完全按照这个顺序。这可能会有所帮助

【讨论】:

  • 如果我只在选择器中留下&lt;item android:color="?android:attr/textColorPrimary"/&gt;,就会出现问题,所以你的回答没有帮助
【解决方案2】:

您出于什么原因使用选择器?
如果您想让文本视图的文本始终为红色,则不需要选择器。只需使用添加颜色在 color.XML 或 string.XML 中定义颜色。
如果你想在选择或焦点上改变它而不是使用状态。
状态启用
状态按下
状态聚焦强>
它将按您的需要工作。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2016-02-12
    • 1970-01-01
    • 2012-11-12
    • 1970-01-01
    • 2012-10-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多