- 最近使用selector 遇到一点令人哭笑不得问题,在使用selector
做点击切换图片的时候刚开始怎么设置都不起作用,刚开始还以为是图片的原因,尝试了各种icon之后依然无效,在绝望之际经大神指点才突然想起来selector
顺序执行的 之前的代码是这样的(写完代码习惯性的格式化了一下)。
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
//这是错误用法
<item android:drawable="@drawable/home_more" />
<item android:drawable="@drawable/home_more_" android:state_selected="true" />
<item android:drawable="@drawable/home_more_" android:state_pressed="true" />
<item android:drawable="@drawable/home_more_" android:state_focused="true" />
</selector>
由于selector 是顺序执行的 执行完第一句后不再往后执行了 所以无论怎么点击获取焦点等都无效,
下边是正确的写法顺序,selector 是顺序执行的 默认状态要放在最后执行
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
//这是正确用法
<item android:drawable="@drawable/home_more_" android:state_selected="true" />
<item android:drawable="@drawable/home_more_" android:state_pressed="true" />
<item android:drawable="@drawable/home_more_" android:state_focused="true" />
<item android:drawable="@drawable/home_more" />
</selector>
掌握的知识点:selector 是顺序执行的(一不注意就会犯这个低级错误,特在此记录下来)