【发布时间】:2012-12-26 15:51:13
【问题描述】:
我有一个按钮,我希望它在设置时具有不同的背景:
android:enabled="false"
这里是背景资源文件:
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:state_pressed="false"
android:drawable="@drawable/bttn_orange_normal" /> <!-- pressed -->
<item android:state_pressed="true"
android:drawable="@drawable/bttn_orange_selected" /> <!-- focused -->
<item android:state_enabled="false" android:drawable="@drawable/bttn_grey_disabled"/>
<item android:state_enabled="true" android:drawable="@drawable/bttn_orange_normal"/>
</selector>
但按钮在禁用时仍然具有正常背景。 我错过了什么?
【问题讨论】:
-
尝试在第一个项目部分添加 android:state_enabled="true"
-
pressed false 未按下。此外,不指定状态也不意味着错误。这意味着它不被考虑。所以,这里的规则意味着任何时候没有按下按钮,它都有正常的背景。
-
你必须删除最后一项的android:state_enabled="true",这样所有其他状态都会有@drawable/bttn_orange_normal。一旦您的按钮被禁用,它将在正确的位置获得 @drawable/bttn_grey_disabled。此外,您必须删除具有 android:state_pressed="false" 的行,因为它将覆盖 android:state_enabled="false"的定义>