禁用带有自定义背景的Android按钮

12

当我设置安卓按钮为禁用状态时,该按钮看起来是“透明”的。

我有一个自定义背景的按钮,用于按下和聚焦状态。 我想从代码中将其禁用。 当我尝试button.setEnabled(false);时,我成功地禁用了该按钮,但是它仍然保留相同的自定义背景。 有没有办法禁用我的自定义按钮并将背景更改为透明?


https://dev59.com/4U_Sa4cB1Zd3GeqP8w1m - Will Tate
2个回答

42

你应该像这样创建你自定义的选择器:

<selector xmlns:android="http://schemas.android.com/apk/res/android">
    <item 
    android:state_enabled="false"
        android:drawable="@drawable/btn_red" />
    <item 
        android:state_pressed="true" 
        android:state_enabled="true"
        android:drawable="@drawable/btn_orange" />
    <item 
        android:state_focused="true" 
        android:state_enabled="true"
        android:drawable="@drawable/btn_orange" />
    <item 
        android:state_enabled="true"
        android:drawable="@drawable/btn_black" />
</selector>

4
为该选择器,在 res/drawable/ 目录中创建一个新的 XML 文件。 - Ivo Renkema

16
也许你可以在选择器中使用android:state_enabled,并将其设置为适当的透明可绘制对象来处理此按钮?

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接