天天看點

selector-item屬性

今天做的項目,發現通過鍵盤選中一個button以後,并沒有出現button樣式的變化,後來發現是selector裡面缺少狀态配置的原因。這裡就順便把用到的屬性記錄了下來,友善以後使用。當然它的屬性很多,慢慢的累積吧

直接看代碼

<selector xmlns:android="http://schemas.android.com/apk/res/android">

    <!-- 按下狀态  -->
    <item android:drawable="@drawable/select_1" android:state_pressed="true"/>
    <!-- 獲得焦點,比如實體按鍵選中 或者是代碼中 requestFocus() -->
    <item android:drawable="@drawable/select_3" android:state_focused="true"/>
    <item android:drawable="@drawable/select_2"/>

</selector>      

注意selector 中,item的狀态非常的多,它們中肯定有很多狀态是有交集的,這時候item的順序就決定了狀态的選擇。如果我們把上面的item 2 跟3 位置調換,你就會發現,focused 狀态就不起作用了。因為代碼認為,你隻要不是pressed 狀态,那麼他就往下一個item判斷,如果第二個可以,那麼就不會在往下執行了。類似于代碼中的switch

這個selector不僅僅可以作為一個按鈕的點選狀态,其實,凡是顔色的地方,它都是可以用的。例如,如果你想讓一個textview的字型顔色随着textview的狀态變化而發生相應的改變,你隻需要把這個selector作為textColor的值就行了。這裡需要主要的是

1.裡面的android:drawable 變為android:color

2.如果引用的話,selector必須是一個@drawable引用,代碼中也必須是R.drawable.

轉載于:https://www.cnblogs.com/zhangshuli-1989/p/zhangshuli_selector_15824150.html