![](/img/trans.png)
[英]Divider between RadioButtons in RadioGroup - similar to GMail's
[英]Android radiogroup, divider between radiobuttons
有沒有一種簡單的方法在RadioGroup
RadioButtons
之間添加一個分隔符? 我嘗試過使用divider
xml屬性,但似乎沒有用。 如果它是相關的,我的布局中的RadioGroup
不包含任何子視圖; 我正在以編程方式添加RadioButtons
。
編輯 :問題解決了。 您可以在RadioGroup
中的RadioGroup
內添加除RadioButton
之外的視圖。 在我的情況下,您也可以以編程方式執行此操作,但請注意您的布局參數。 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>
這對你有用。 我真的好奇你如何在Group View中添加視圖? 這應該導致classcastexception,不是嗎?
這是一個解決方法:
首先創建一個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>
這只是一個簡單的黑色邊框。 將它放在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>
您還可以向RadioGroup添加ShapeDrawable。 這取決於您,如果您需要,可以自定義。 :)
這是我的一個帶有自定義邊框(帶有圓角半徑)和自定義分隔符ShapeDrawable(s)的RadioGroup的示例。
創建表示分隔符的形狀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>
在RadioGroup中將此drawable用作“divider”:
<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”來進行修改。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.