Android radiogroup,radiobuttons之间的分隔线

Kar*_*uri 21 android radio-group radio-button divider

是否有一种简单的方法在RadioButtons内部添加分隔符RadioGroup?我尝试过使用dividerxml属性,但似乎没有用.如果它是相关的RadioGroup,我的布局中不包含任何子视图; 我正在以RadioButtons编程方式添加.

编辑:问题解决了.您可以在xml中添加RadioButton内部视图RadioGroup.在我的情况下,您也可以以编程方式执行此操作,但请注意您的布局参数.Akki有正确的想法,这对我有用:

for (int i = 0; i < items.size(); i++) {
    if (i > 0) {
        // add a divider with height of 1 pixel
        View v = new View(this);
        v.setLayoutParams(new RadioGroup.LayoutParams(LayoutParams.MATCH_PARENT, 1));
        v.setBackgroundColor(android.R.color.darker_gray);
        mRadioGroup.addView(v);
    }
    RadioButton rb = new RadioButton(this);
    /* set other properties ... */

    mRadioGroup.addView(rb);
}
Run Code Online (Sandbox Code Playgroud)

小智 20

<RadioGroup
    android:id="@+id/location_radio_group"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:divider="?android:attr/dividerHorizontal"
    android:showDividers="middle">
</RadioGroup>
Run Code Online (Sandbox Code Playgroud)

这对你有用.我真的好奇你如何在Group View中添加视图?这应该导致classcastexception,不是吗?


Kar*_*nne 15

这是一个解决方法:

首先创建一个Shape Drawable作为分隔符.这是一个例子:

<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android"
    android:shape="rectangle" >
<solid 
    android:color="@color/white" />
<stroke 
    android:width="0.3dp" 
    android:color="@color/black" />
</shape>
Run Code Online (Sandbox Code Playgroud)

这只是一个简单的黑色边框.将它放在drawable /文件夹中,并将其命名为custom_divider.xml.

然后,转到使用RadioGroup的布局.使用ShapeDrawable作为每个RadioButton的背景.这是一个例子:

<RadioGroup
        android:id="@+id/radioGroup1"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:layout_marginTop="10dp"
        android:divider="@color/black" >

        <RadioButton
            android:id="@+id/radio0"
            android:layout_width="fill_parent"
            android:layout_height="wrap_content"
            android:background="@drawable/custom_radiogroup_divider"
            android:checked="true"
            android:text="RadioButton" />

        <RadioButton
            android:id="@+id/radio1"
            android:layout_width="fill_parent"
            android:layout_height="wrap_content"
            android:background="@drawable/custom_radiogroup_divider"
            android:text="RadioButton" />

        <RadioButton
            android:id="@+id/radio2"
            android:layout_width="fill_parent"
            android:layout_height="wrap_content"
            android:background="@drawable/custom_radiogroup_divider"
            android:text="RadioButton" />

    </RadioGroup>
Run Code Online (Sandbox Code Playgroud)

您还可以向RadioGroup添加ShapeDrawable.这取决于您,如果您需要,可以自定义.:)

这是我的一个带有自定义边框(带有圆角半径)和自定义分隔符ShapeDrawable(s)的RadioGroup的示例. RadioGroup分频器


Dav*_*vid 6

创建表示分隔符的形状drawable(称为"radio_group_divider"):

<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android">
    <size android:width="12dp" />
    <solid android:color="@color/transparent" />
</shape>
Run Code Online (Sandbox Code Playgroud)

在RadioGroup中将此drawable用作"divider":

<RadioGroup
        ...
        android:divider="@drawable/radio_group_divider"
        android:showDividers="middle"
        ...>
</RadioGroup>
Run Code Online (Sandbox Code Playgroud)