<item android:state_enabled="false" android:color="@android:color/bright_foreground_dark_disabled"/>
<item android:color="@android:color/bright_foreground_dark"/>
这两者有什么区别?根据文档,当未启用状态时使用第一项的颜色,第二项是默认颜色。那么,如果项目未启用,使用哪种颜色?
答案 0 :(得分:3)
如果未启用该项,则会使用第一个item
,因为它匹配所有state
个选择器。选择器项目从上到下进行检查,并使用与state
匹配的第一个项目。
答案 1 :(得分:0)
false
个州旨在与其他州合并使用。例如,您有可检查的项目,可以禁用或启用它,并且您希望为每个状态组合使用不同的drawable。这可以通过以下方式实现:
<item android:state_checked="true" android:state_enabled="true" android:drawable="@drawable/drawable1"/>
<item android:state_checked="true" android:state_enabled="false" android:drawable="@drawable/drawable2"/>
<item android:state_checked="false" android:state_enabled="true" android:drawable="@drawable/drawable3"/>
<item android:state_checked="false" android:state_enabled="false" android:drawable="@drawable/drawable4"/>
<item android:drawable="@drawable/drawable0"/>
如果你不需要这样的组合,没有其他状态就没有必要使用state_xxx="false"
,尽管这不是错误。