禁用时,Android文本视图颜色不会更改

时间:2009-08-27 17:02:24

标签: android colors textview

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

有什么想法吗?

2 个答案:

答案 0 :(得分:133)

我认为发生的事情是,由于您覆盖了默认的文本颜色,因此它不会继承其他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文件示例。

答案 1 :(得分:0)

尝试添加:

<TextView
     android:textColor="?android:attr/textColorPrimaryDisableOnly"  
...
相关问题