为按钮写了一个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>
正常状态:
点击状态: