xml选择器是否表示' AND'彼此之间?

时间:2016-01-21 15:30:06

标签: android xml

想象一下,我有一个像这样的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或其他任何地方找到答案。

2 个答案:

答案 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中的第一项需要按下并聚焦视图。