当我打电话setEnabled(false)
的TextView
对象的文本颜色没有变化。我预计它将更改为灰色。如果删除android:textColor
XML文件中的行,它将恢复正常。
有任何想法吗 ?
当我打电话setEnabled(false)
的TextView
对象的文本颜色没有变化。我预计它将更改为灰色。如果删除android:textColor
XML文件中的行,它将恢复正常。
有任何想法吗 ?
Answers:
我认为正在发生的事情是,由于您要覆盖默认的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文件提供了更加充实的示例。