2016-12-30 108 views
2

我在res/drawable以下XML代碼,我設置按鈕background這個drawable。但是當我按下按鈕時,它不會改變color。感謝您的幫助安卓:state_pressed不工作

<item android:state_enabled="false" 
    android:drawable="@color/colorAccent"> 
</item> 

<item android:state_enabled="true" 
    android:drawable="@color/colorPrimary"> 
</item> 

<item 
    android:state_selected="false" 
    android:state_pressed="true" 
    android:drawable="@color/black"> 
</item> 

回答

0
<selector> 
<item android:state_pressed="true" android:drawable="#EDCFE9"/> 
<item android:state_selected="true" android:drawable="#EDCFE9"/> 
<item android:drawable="#603F86"/> 
</selector> 

試試這個,這將改變按鈕按下按鈕的顏色。

1

那麼你需要記住的是,android讀線後行並返回第一個真實的聲明。 ,因爲你已經啓用了假/真項目在state_Selected之前,它總是會選擇enabled = false/true項目。 只是之前 「state_enabled」 像這樣將您的bottum代碼:

<item 
 
    android:state_selected="false" 
 
    android:state_pressed="true" 
 
    android:drawable="@color/black"> 
 
</item> 
 

 
<item android:state_enabled="false" 
 
    android:drawable="@color/colorAccent"> 
 
</item> 
 

 
<item android:state_enabled="true" 
 
    android:drawable="@color/colorPrimary"> 
 
</item>

+0

這是最好的答案。 –

1

與下面的代碼創建一個新的繪製:

<selector xmlns:android="http://schemas.android.com/apk/res/android"> 
<item android:state_pressed="true" android:drawable="@color/pink"/> <!-- pressed state --> 
<item android:drawable="@color/blue"/> <!-- default state --> 
</selector> 

添加下面的顏色爲values > colors.xml文件

<color name="blue">#49B8C7</color> 
<color name="pink">#FF8EB9</color>