写selector的xml文件时,需注意item的顺序,不带状态的item放在最后,否则selector无效

前端之家收集整理的这篇文章主要介绍了写selector的xml文件时,需注意item的顺序,不带状态的item放在最后,否则selector无效前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。

为按钮写了一个selector,一个正常状态,一个点击的状态,用了两张不同的图片。以求达到更好地用户体验。xml格式都正确,设置到ImageButton的src属性中。但是点击时图片并没有变成预想的那张。

经过查找,原来是在写selector的xml时,item的顺序有个严格的要求:正常状态的item必须放到最后,否则将不产生效果

至于原因,不是很清楚。可能是Android疏忽了的一个小细节。


<?xml version="1.0" encoding="utf-8"?>
<selector
xmlns:android="http://schemas.android.com/apk/res/android">
<item
android:state_focused="false"
android:state_pressed="true"
android:drawable="@drawable/arrow_pressed"/>

<!-- 正常状态的item必须放在最后,否则无法生效 -->
<item android:drawable="@drawable/arrow_normal"/>
</selector>

正常状态:

点击状态:


猜你在找的XML相关文章