使用按钮选择器禁用按钮

18
我有一个按钮选择器,当按下按钮时,它会更改按钮图像。我还为按钮禁用时设置了一张图片。我尝试通过编程来禁用按钮,但是禁用按钮图像没有出现。我的button_selector是否正确?
<item android:drawable="@drawable/red_btn_bg_disabled" android:state_enabled="false"/> <!-- disabled -->

<item android:drawable="@drawable/red_btn_bg_pressed" android:state_pressed="true"/> <!-- pressed -->
<item android:drawable="@drawable/red_btn_bg_pressed" android:state_focused="true"/> <!-- focused -->

<item android:drawable="@drawable/red_btn_bg"/> <!-- default -->

我在代码中使用mButton.setEnabled(false)来禁用按钮

2个回答

42

试试这个,我上传了一个样例项目,以供更多帮助,请查看该项目。

selector.xml

   <selector xmlns:android="http://schemas.android.com/apk/res/android">

        <item android:drawable="@drawable/btn_disable" android:state_enabled="false"/>
        <item android:drawable="@drawable/btn_pressed" android:state_pressed="true"/>
        <item android:drawable="@drawable/btn_normal"/>

    </selector>

并在按钮中使用以下选择器:

<Button
         android:id="@+id/button1"
         android:layout_width="wrap_content"
         android:layout_height="wrap_content"
         android:layout_alignLeft="@+id/button1"
         android:layout_below="@+id/button1"
         android:layout_marginTop="30dp"
         android:background="@drawable/selector"
         android:enabled="false"
         android:text="Disable Button" />

示例代码链接https://www.dropbox.com/s/lydkog10rkujbsa/ButtonSelector.rar


运行得非常好!“启用”对我帮助很大。 - Naveed Ahmad

3

试一下这个。

<item android:drawable="@drawable/red_btn_bg_pressed" android:state_pressed="true"/> <!-- pressed -->

<item android:drawable="@drawable/red_btn_bg_disabled" android:state_enabled="false"/> <!-- disabled -->

<item android:drawable="@drawable/red_btn_bg"/> <!-- default -->

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