有一个简单的方法来增加之间的分隔RadioButtons
一个内部RadioGroup
? 我已经使用试图divider
XML属性,它似乎并没有工作。 在情况下,它相关的RadioGroup
在我的布局不包含任何孩子的意见; 我添加了RadioButtons
编程。
编辑 :问题解决了。 您可以添加之外观点RadioButton
内RadioGroup
的XML。 在我的情况,你也可以做到这一点编程,但要小心,你的布局PARAMS。 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);
}
<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>
这会为你工作。 我真的很好奇你如何添加视图到组视图? 这应该引起ClassCastException异常,不是吗?
这里有一个解决方法:
首先创建一个形状绘制对象为您的分频器。 下面是一个例子:
<?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>
这只是一个简单的黑色边框。 把它放在你的绘制/文件夹并将其命名为类似custom_divider.xml。
然后,转到您的布局,使用RadioGroup中 。 使用ShapeDrawable作为每个单选按钮 (一个或多个)的背景。 下面是一个例子:
<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>
您还可以添加一个ShapeDrawable您RadioGroup中。 这取决于你,定制它,如果你需要。 :)
这里是我的自定义边框(与圆角半径)和自定义分隔ShapeDrawable(S)一个RadioGroup中的例子。
创建形状绘制表示分频器(称为“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>
使用此绘制的“分水岭”,在RadioGroup中:
<RadioGroup
...
android:divider="@drawable/radio_group_divider"
android:showDividers="middle"
...>
</RadioGroup>
如果编程创建RadioGroup中,那么你必须以编程方式设置分隔了。 你可以做这样的:
RadioGroup radioGroup = new RadioGroup(getActivity()); //We create a new radio group
radioGroup.setShowDividers(LinearLayout.SHOW_DIVIDER_MIDDLE);
radioGroup.setDividerDrawable(getResources().getDrawable(android.R.drawable.divider_horizontal_textfield, getActivity().getTheme()));
...
注意:此部分代码是在片段工作。 所以,如果你希望把它放在一个活动,你必须改变“getActivity()”和“YourActivityName.this”修改