写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>

正常状态:

点击状态:


相关文章

php输出xml格式字符串
J2ME Mobile 3D入门教程系列文章之一
XML轻松学习手册
XML入门的常见问题(一)
XML入门的常见问题(三)
XML轻松学习手册(2)XML概念