2016-01-21 41 views
0

想象我有這樣一個XML資源:xml選擇器是否在另一個之間聲明'AND'?

<?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或任何地方找到答案。

回答

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> 

所以,如果你設置了查看這個選擇的背景下,默認會transparent。當你專注於視圖時,將繪製drawable/three。如果您沒有注意並且用戶按下它,則會繪製drawable/two。如果您在用戶按下時重新對焦,則會繪製drawable/one

0

視圖的狀態必須匹配選擇器狀態中定義的所有條件。

drawable中的第一項需要View和View都被壓縮和聚焦。

相關問題