想象一下,我有一个像这样的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
?我无法在docs或其他任何地方找到答案。
答案 0 :(得分:1)
当满足两个条件时,将绘制项目,这样就可以为“按下并聚焦”,“按下”和“聚焦”提供多种状态。
<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>
因此,如果您将View的背景设置为此选择器,则默认值为transparent
。当您专注于视图时,将绘制drawable/three
。如果您没有聚焦并且用户按下它,则会绘制drawable/two
。如果您在用户按下时重新对焦,则会绘制drawable/one
。
答案 1 :(得分:0)
View状态必须符合选择器状态中定义的所有条件。
drawable中的第一项需要按下并聚焦视图。