一旦前面的一个 `item` 已经满足匹配的状态,后面的 `item` 就不会去执行了。
例如下面的代码,按钮被按下变色的效果就没有
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<!--默认-->
<item >
<shape android:shape="rectangle">
<solid android:color="@color/act_login_user_login_text_color"/>
<corners android:radius="16dp" />
</shape>
</item>
<!--按压时-->
<item android:state_pressed="true">
<shape android:shape="rectangle">
<solid android:color="@color/act_login_icon_remark_text_color"/>
<corners android:radius="16dp" />
</shape>
</item>
<!--不可用-->
<item android:state_enabled="false">
<shape android:shape="rectangle">
<solid android:color="@color/btn_un_use"/>
<corners android:radius="16dp" />
</shape>
</item>
</selector>
而下面的代码,按钮被点击后才有变色的效果
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<!--按压时-->
<item android:state_pressed="true">
<shape android:shape="rectangle">
<solid android:color="@color/act_login_icon_remark_text_color"/>
<corners android:radius="16dp" />
</shape>
</item>
<!--不可用-->
<item android:state_enabled="false">
<shape android:shape="rectangle">
<solid android:color="@color/btn_un_use"/>
<corners android:radius="16dp" />
</shape>
</item>
<!--默认-->
<item >
<shape android:shape="rectangle">
<solid android:color="@color/act_login_user_login_text_color"/>
<corners android:radius="16dp" />
</shape>
</item>
</selector>
相关属性:
android:state_selected是选中
android:state_focused是获得焦点
android:state_pressed是点击
android:state_enabled是设置是否响应事件,指所有事件
<?xml version="1.0" encoding="utf-8" ?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<!-- 默认时的背景图片-->
<item android:drawable="@drawable/pic1" />
<!-- 没有焦点时的背景图片 -->
<item android:state_window_focused="false"
android:drawable="@drawable/pic1" />
<!--选中时的图片背景-->
<item android:state_selected="true" android:drawable="@drawable/pic4" />
<!--获得焦点时的图片背景-->
<item android:state_focused="true" android:drawable="@drawable/pic5" />
<!--点击时的图片背景-->
<item android:state_pressed="true" android:drawable="@drawable/select" />
</selector>