在radiobutton android上改变RadioButton覆盖文本的背景

时间:2013-08-21 07:25:20

标签: android android-layout android-view android-xml

我在改变RadioButton的背景属性时遇到了一些问题

首先,我想在每个单选按钮下面创建一行,这是一个Radiobutton小组中的三个

这是以下代码

 <RadioGroup
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    android:divider="@android:color/black"
    android:orientation="vertical" >

    <RadioButton
        android:id="@+id/radioBtnFirst"
        android:layout_width="fill_parent"
        android:layout_height="0dp"
        android:layout_weight="1"
        android:background="@drawable/custom_radiogroup_divider"
        android:text="Answer 1"/>

    <RadioButton
        android:id="@+id/radioBtnTwo"
        android:layout_width="fill_parent"
        android:layout_height="0dp"
        android:layout_weight="1"
        android:background="@drawable/custom_radiogroup_divider"
        android:text="Answer 2"/>

    <RadioButton
        android:id="@+id/radioBtnThree"
        android:layout_width="fill_parent"
        android:layout_height="0dp"
        android:layout_weight="1"
        android:background="@drawable/custom_radiogroup_divider"
        android:text="Answer 3"/>
</RadioGroup>

现在在drawable文件夹中,custom_radiogroup_divider.xml是

<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android"
       android:shape="rectangle" >

    <solid android:color="@android:color/transparent" />

    <stroke
       android:width="0.3dp"
       android:color="@android:color/black" />

</shape>

但现在问题是我使用背景属性

单选按钮看起来像文本与radiobutton重叠

3 个答案:

答案 0 :(得分:5)

您必须从Java代码中设置radiobutton的背景:

radioBtnFirst.setButtonDrawable(R.drawable.custom_radiogroup_divider);

它也适用于复选框;)

答案 1 :(得分:2)

不要将drawable设置为背景,而是将其设置为按钮。

使用此

  <RadioButton
    android:id="@+id/radioBtnFirst"
    android:layout_width="fill_parent"
    android:layout_height="0dp"
    android:layout_weight="1"
    android:button="@drawable/custom_radiogroup_divider"
    android:text="Answer 1" />

答案 2 :(得分:0)

试试这个 在radio_buttons布局中将布局宽度设置为wrap_content