3

我在更改 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>

现在在可绘制文件夹 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>

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

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

4

3 回答 3

5

您必须从 Java 代码中设置单选按钮的背景:

radioBtnFirst.setButtonDrawable(R.drawable.custom_radiogroup_divider);

它也适用于复选框;)

于 2013-08-21T08:05:36.193 回答
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" />
于 2013-08-21T07:34:39.810 回答
0

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

于 2013-08-21T07:30:47.793 回答