>想象一下,我有一个像这样的xml资源:
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:drawable="@drawable/one"
android:state_pressed="true" android:state_focused="true"/>
<item android:drawable="@color/transparent"/>
</selector>
当达到两个状态中的任何一个或两个状态时,是否会显示第一个drawable
?我在文档中或此事的任何地方都找不到答案。
当同时满足两个条件时,将绘制该项目,这允许您具有"按下和聚焦","按下"和"聚焦"的多种状态。
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:drawable="@drawable/one"
android:state_pressed="true" android:state_focused="true"/>
<item android:drawable="@drawable/two"
android:state_pressed="true"/>
<item android:drawable="@drawable/three"
android:state_focused="true"/>
<item android:drawable="@color/transparent"/>
</selector>
因此,如果将视图的背景设置为此选择器,则默认值将为 transparent
。当您专注于视图时,将绘制drawable/three
。 如果您取消对焦并且用户按下它,则将绘制drawable/two
。 如果在用户按下它时重新对焦,则会绘制drawable/one
。
视图的状态必须与选择器状态中定义的所有条件匹配。
可绘制对象中的第一项要求视图既要按下又要聚焦。