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

56 android colors textview

当我打电话setEnabled(false)TextView对象的文本颜色没有变化.我预计它会变成灰色.如果我删除android:textColorXML文件中的行,它将恢复正常.

有任何想法吗 ?

Jer*_*gan 139

我认为发生的事情是,因为你覆盖了默认的文本颜色,所以它不会继承其他的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>
Run Code Online (Sandbox Code Playgroud)

然后在你的布局中:

<TextView
    android:text="whatever text you want"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:textColor="@color/example" />
Run Code Online (Sandbox Code Playgroud)

注意,我有一段时间没有这样做,我从内存中输入了很多这个,所以可能需要稍微调整一下.ColorStateList文档(上面链接)有一个更加丰富的颜色XML文件示例.

  • 有没有办法以编程方式获取禁用文本的颜色? (2认同)