匹配规则
系统在匹配selector中的<item>
时,会从上往下匹配,当某一项匹配时,便不再继续往下匹配。同时如果某个item的状态没有指定,那么它能匹配任何状态。
注意点
由于这样的匹配规则,下面的<item>
要注意是否能够匹配到,防止始终被上面的<item>
先匹配而无法生效。
示例
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:state_pressed="true" android:drawable="@drawable/btn_pressed"/>
<item android:state_enabled="true" android:drawable="@drawable/btn_normal"/>
<item android:state_enabled="false" android:drawable="@drawable/btn_pressed"/>
</selector>
这是一个按钮的背景图,正常状态下的按钮背景图时btn_normal
,按钮在按下时还是enable
的,如果第1和第2项<item>
对换位置,那么按钮按下时背景图永远也不会变化。