Android使用selector點選按鈕文字變色
阿新 • • 發佈:2018-11-03
需求:開發中按鈕按壓時字型顏色變為灰色 鬆開後恢復
實現:1.res下新建color資料夾(放drawable資料夾下也可),建立檔案btn_text_color.xml:
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:state_focused="false"
android:state_enabled="true"
android:state_pressed="false"
android:color="@color/green"/><!--選擇器的預設顏色-->
<item android:state_enabled="false"
android:color="@color/text_gray" /><!--控制元件是否接受觸控或者點選事件時的顏色,false不接受-->
<item android:state_pressed="true"
android:color="@color/text_gray" /><!--是否按下,如一個按鈕觸控或者點選,true按下-->
<item android:state_focused="true"
android:color="@color/text_gray" /><!--是否取得焦點,true取的焦點-->
</selector>
2.佈局檔案中引用
<Button android:layout_width="100dp" android:layout_height="40dp" android:layout_centerVertical="true" android:layout_marginLeft="10dp" android:background="@drawable/bg_white_shape" android:gravity="center" android:text="點選測試" android:textColor="@color/btn_text_color"android:textSize="16sp" />
以上已成功測試通過,下面貼一份開發過程中失敗案例(和成功相似,比較難發現)btn_text_color.xml::
<selector xmlns:android="http://schemas.android.com/apk/res/android"> <item android:color="@drawable/app_base_color" /> <item android:color="@drawable/text_gray" android:state_pressed="true"/> <item android:color="@drawable/text_gray" android:state_pressed="true"/> </selector>
這種點選不會變色。