2016-12-30 109 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>