android:state_pressed 不工作
android:state_pressed is not working
我在 res/drawable
中有以下 XML 代码,我将按钮 background
设置为此 drawable
。然而,当我按下按钮时,它并没有改变 color
。感谢帮助
<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>
你需要记住 android 逐行阅读并返回第一个正确的陈述。
因为您在 state_Selected 之前启用了 false / true 项目,所以它将始终选择 enabled = false / true 项目。
只需将您的底部代码移动到 "state_enabled" 之前,如下所示:
<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>
<selector>
<item android:state_pressed="true" android:drawable="#EDCFE9"/>
<item android:state_selected="true" android:drawable="#EDCFE9"/>
<item android:drawable="#603F86"/>
</selector>
这将改变按下按钮时的按钮颜色。
指定选择器字段时顺序很重要 - 从上到下首先匹配的选择器将被显示。默认按钮状态应始终最后指定。
使用以下代码创建一个新的可绘制对象:
<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>
我在 res/drawable
中有以下 XML 代码,我将按钮 background
设置为此 drawable
。然而,当我按下按钮时,它并没有改变 color
。感谢帮助
<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>
你需要记住 android 逐行阅读并返回第一个正确的陈述。 因为您在 state_Selected 之前启用了 false / true 项目,所以它将始终选择 enabled = false / true 项目。 只需将您的底部代码移动到 "state_enabled" 之前,如下所示:
<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>
<selector>
<item android:state_pressed="true" android:drawable="#EDCFE9"/>
<item android:state_selected="true" android:drawable="#EDCFE9"/>
<item android:drawable="#603F86"/>
</selector>
这将改变按下按钮时的按钮颜色。
指定选择器字段时顺序很重要 - 从上到下首先匹配的选择器将被显示。默认按钮状态应始终最后指定。
使用以下代码创建一个新的可绘制对象:
<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>