Android 背景选择器 selector 中enable选项失效

本文最后更新于:18 天前

今天在使用TextView 设置背景颜色时发现没法TextView的颜色不能设置enable = false;

1
2
3
4
5
6
7
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:state_pressed="true" android:drawable="@drawable/tv_visit_bg_press"/>
<item android:drawable="@drawable/tv_visit_bg_normal"/>
<item android:state_enabled="false" android:drawable="@drawable/tv_disable"/>
</selector>
</xml>

然后google了一下,发现代码中颜色匹配是顺序原则,只要找到第一个符合要求的,就不再继续往下执行了。所以只要把enable提前改成下面的顺序就可以正常展示了。

1
2
3
4
5
6
7
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:state_enabled="false" android:drawable="@drawable/tv_disable"/>
<item android:state_pressed="true" android:drawable="@drawable/tv_visit_bg_press"/>
<item android:drawable="@drawable/tv_visit_bg_normal"/>
</selector>
</xml>

Android 背景选择器 selector 中enable选项失效
https://blog.doracoin.cc/posts/development/53819.html
作者
Doracoin
发布于
2016年10月21日
更新于
2025年9月10日
许可协议