Android 文本视图颜色在禁用时不会改变

2024-04-23

当我打电话时setEnabled(false) for a TextView对象文本颜色不会改变。我预计它会变成灰色。如果我删除该行android:textColor在我的 XML 文件中,它恢复正常。

有任何想法吗 ?


我认为发生的情况是,由于您覆盖了默认的文本颜色,因此它不会继承其他文本颜色样式。尝试创建一个颜色状态列表 http://developer.android.com/reference/android/content/res/ColorStateList.html并将其 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 文件示例。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Android 文本视图颜色在禁用时不会改变 的相关文章

随机推荐