在写Android布局的时候,selector是比较常用的。
但是有一天,我发现它失效了。神奇的车祸现场是这样的:
<item android:drawable="@mipmap/home"/>
<item android:drawable="@mipmap/home_pressed" android:state_selected="true"/>
<item android:drawable="@mipmap/home_pressed" android:state_focused="true"/>
<item android:drawable="@mipmap/home_pressed" android:state_pressed="true"/>
就是按下去一个效果的显示,以前也没注意过,这次突然就翻车啦?!!!
不知道各位有没有想过这里边 顺序有没有讲究?
解决方式:
把
<item android:drawable="@mipmap/home"/>
放到末置位,就像这样:
<item android:drawable="@mipmap/home_pressed" android:state_selected="true"/>
<item android:drawable="@mipmap/home_pressed" android:state_focused="true"/>
<item android:drawable="@mipmap/home_pressed" android:state_pressed="true"/>
<item android:drawable="@mipmap/home"/>
为啥呢?
其实 这里在做匹配的时候,不是严格匹配的。是从第一行的开始找,”合适”就停止了。所以,如果把
<item android:drawable="@mipmap/home"/>
放在首位,那每次匹配都停在第一行的 也就没有效果了。
推 荐 Android开发经验交流2群(537532956)