<item android:state_enabled="false" android:color="@android:color/bright_foreground_dark_disabled"/>
<item android:color="@android:color/bright_foreground_dark"/>
这两者有什么区别?根据文档,当状态未启用时使用第一项的颜色,第二项是默认颜色。那么,如果该项目未启用,则使用哪种颜色?
<item android:state_enabled="false" android:color="@android:color/bright_foreground_dark_disabled"/>
<item android:color="@android:color/bright_foreground_dark"/>
这两者有什么区别?根据文档,当状态未启用时使用第一项的颜色,第二项是默认颜色。那么,如果该项目未启用,则使用哪种颜色?
如果该项目未启用,item
则使用第一个,因为它匹配其所有state
选择器。选择器项目从上到下检查,第一个使用state
匹配项。
false
状态旨在与其他状态结合使用。例如,您有可检查的项目,它可以被禁用或启用,并且您希望每个状态组合具有不同的可绘制对象。这可以通过以下方式实现:
<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"
没有其他状态就没有必要使用,尽管这不是一个错误。