使用自定义形状设置在 RadioGroup 中选中的颜色文本 RadioButton
Set color text RadioButton checked in RadioGroup with custom Shape
我有一个问题,如果 RadioButton 被选中,我无法将它的文本颜色更改。
我在 activity.xml
中有这个
<RadioGroup
android:id="@+id/activity_onsite"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_centerHorizontal="true"
android:layout_centerVertical="true" >
<RadioButton
android:id="@+id/onsite_0"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:checked="true"
android:background="@drawable/toggle_btn"
android:padding="10dp"
android:text="office"
android:button="@null"/>
<RadioButton
android:id="@+id/onsite_1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:background="@drawable/toggle_btn"
android:text="clients"
android:padding="10dp"
android:button="@null"/>
</RadioGroup>
在我的资源中 @drawable/togglebtn 我有
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:drawable="@drawable/radio_btn_selected" android:state_checked="true" />
<item android:drawable="@drawable/radio_btn_regular" android:state_checked="false"/>
</selector>
最后在我的 @drawable/radio_btn_selected
<shape
xmlns:android="http://schemas.android.com/apk/res/android"
android:shape="rectangle" >
<corners
android:radius="5dp" />
<solid
android:color="#39b3d7"
/>
<stroke
android:width="1dp"
android:color="#269abc" />
</shape>
并且在@drawable/radio_btn_regular
<shape
xmlns:android="http://schemas.android.com/apk/res/android"
android:shape="rectangle" >
<corners
android:radius="5dp" />
<solid
android:color="#fff"
/>
<stroke
android:width="1dp"
android:color="#269abc" />
</shape>
我可以更改 radio_btn_selected.xml 中的文本颜色吗?
您不能使用一个选择器同时设置背景和文本颜色属性。为 textColor 创建一个新的选择器说 radio_text_selected.xml
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:state_pressed="true" android:color="#39b3d7"/>
<item android:state_checked="true" android:color="#39b3d7"/>
<item android:color="#ff8a8a"/>
</selector>
设置 RadioButton 的 textColor 属性
android:textColor="@drawable/radio_text_selected"
@sJy 谢谢。这行得通。
我添加了 radio_text_selected.xml
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:state_checked="true" android:color="#f3f3"/>
<item android:state_checked="false" android:color="#000"/>
</selector>
在 RadioButton 上 Activity.xml:
<RadioGroup
android:id="@+id/activity_onsite"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_centerHorizontal="true"
android:layout_centerVertical="true" >
<RadioButton
.
.
android:textColor="@drawable/radio_text_selected"/>
<RadioButton
.
.
android:textColor="@drawable/radio_text_selected"/>
</RadioGroup>
我有一个问题,如果 RadioButton 被选中,我无法将它的文本颜色更改。 我在 activity.xml
中有这个<RadioGroup
android:id="@+id/activity_onsite"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_centerHorizontal="true"
android:layout_centerVertical="true" >
<RadioButton
android:id="@+id/onsite_0"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:checked="true"
android:background="@drawable/toggle_btn"
android:padding="10dp"
android:text="office"
android:button="@null"/>
<RadioButton
android:id="@+id/onsite_1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:background="@drawable/toggle_btn"
android:text="clients"
android:padding="10dp"
android:button="@null"/>
</RadioGroup>
在我的资源中 @drawable/togglebtn 我有
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:drawable="@drawable/radio_btn_selected" android:state_checked="true" />
<item android:drawable="@drawable/radio_btn_regular" android:state_checked="false"/>
</selector>
最后在我的 @drawable/radio_btn_selected
<shape
xmlns:android="http://schemas.android.com/apk/res/android"
android:shape="rectangle" >
<corners
android:radius="5dp" />
<solid
android:color="#39b3d7"
/>
<stroke
android:width="1dp"
android:color="#269abc" />
</shape>
并且在@drawable/radio_btn_regular
<shape
xmlns:android="http://schemas.android.com/apk/res/android"
android:shape="rectangle" >
<corners
android:radius="5dp" />
<solid
android:color="#fff"
/>
<stroke
android:width="1dp"
android:color="#269abc" />
</shape>
我可以更改 radio_btn_selected.xml 中的文本颜色吗?
您不能使用一个选择器同时设置背景和文本颜色属性。为 textColor 创建一个新的选择器说 radio_text_selected.xml
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:state_pressed="true" android:color="#39b3d7"/>
<item android:state_checked="true" android:color="#39b3d7"/>
<item android:color="#ff8a8a"/>
</selector>
设置 RadioButton 的 textColor 属性
android:textColor="@drawable/radio_text_selected"
@sJy 谢谢。这行得通。 我添加了 radio_text_selected.xml
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:state_checked="true" android:color="#f3f3"/>
<item android:state_checked="false" android:color="#000"/>
</selector>
在 RadioButton 上 Activity.xml:
<RadioGroup
android:id="@+id/activity_onsite"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_centerHorizontal="true"
android:layout_centerVertical="true" >
<RadioButton
.
.
android:textColor="@drawable/radio_text_selected"/>
<RadioButton
.
.
android:textColor="@drawable/radio_text_selected"/>
</RadioGroup>