【问题标题】:Android text view color doesn't change when disabled禁用时Android文本视图颜色不会改变
【发布时间】:2010-11-23 11:11:39
【问题描述】:

当我为 TextView 对象调用 setEnabled(false) 时,文本颜色不会改变。我预计它将变为灰色。如果我在我的 XML 文件中删除 android:textColor 行,它就会恢复正常。

有什么想法吗?

【问题讨论】:

标签: android colors textview


【解决方案1】:

我认为正在发生的事情是,由于您覆盖了默认的 textcolor,它并没有继承其他 textcolor 样式。尝试为它创建一个ColorStateList 并将 textColor 属性设置为它而不是颜色。

在颜色文件中(例如 res/color/example.xml):

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

然后在你的布局中:

<TextView
    android:text="whatever text you want"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:textColor="@color/example" />

请注意,我已经有一段时间没有这样做了,而且我从记忆中输入了很多这样的内容,因此可能需要稍微调整一下。 ColorStateList 文档(上面链接)有一个更充实的彩色 XML 文件示例。

【讨论】:

  • 谢谢!放在一个地方非常方便。只是一个旁注。代替“color”文件夹(例如,这不是 2.1 的标准),您可以将其放入“xml”文件夹,并将其用作“@xml/example”。也适用于styles.xml!
  • 有没有办法以编程方式获取禁用文本的颜色?
猜你喜欢
  • 1970-01-01
  • 2023-01-15
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-06-19
  • 1970-01-01
相关资源
最近更新 更多