XML 选择器状态是否彼此之间'AND'?



>想象一下,我有一个像这样的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

视图的状态必须与选择器状态中定义的所有条件匹配。

可绘制对象中的第一项要求视图既要按下又要聚焦。

最新更新