1

我在android中有一个自定义单选按钮。它工作正常。我的问题是,当我禁用这些按钮时,它不会变灰。我该怎么做?这是我的自定义单选按钮示例代码。

<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
 <item android:state_checked="true" android:drawable="@drawable/radio_select" />
 <item android:state_checked="false" android:drawable="@drawable/radio_holo" />
</selector>

这是我在布局中使用的代码

<RadioButton
    android:id="@+id/radioButton2"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:button="@drawable/custom_radio_button"
    android:onClick="OnClick"
    android:text="button 1"
    android:textAppearance="?android:attr/textAppearanceSmall"
    android:textColor="@color/black" />

另一件事是我需要文本外观小而正常的文本颜色为黑色。

4

3 回答 3

0

尝试将此添加到您的 custom_radio_button.xml:

<item android:state_enabled="false" android:drawable="@drawable/your_grayed_out_btn" />
于 2013-03-29T06:59:32.567 回答
0

如果您需要根据 的状态更改文本颜色,请RadioButton尝试编写一个选择器,如答案所示。

于 2013-03-29T08:37:11.487 回答
0

请注意选择器项中的属性,因为它是逻辑 AND。

表示如果您将android:state_checked="false"android:state_enabled="true"放在一个项目中。只有当两者都为真时它才会起作用。下面的代码适用于selectedunselecteddisabled状态。

<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
   <item android:drawable="@drawable/ic_radio_btn_inactive" android:state_checked="false" android:state_enabled="true"/>
   <item android:drawable="@drawable/ic_radio_btn_active" android:state_checked="true" android:state_enabled="true"/>
   <item android:drawable="@drawable/ic_radio_btn_diabled"    android:state_enabled="false"/>
</selector>
于 2019-09-24T06:54:24.417 回答