RadioGroup默认的横向android:orientation="horizontal"、竖向布局android:orientation="vertical",无法设置每行显示的个数,只能全部横向显示或者竖向显示。
而通过线性布局模版后,RadioButton却变成不是同一个组的,变成不是单选的,达不到原先想要的效果。
本例中是想在RadioGroup中一行显示2个RadioButton,上面的方法行不通,后来发现在RadioButton用android:layout_marginLeft和android:layout_marginTop可能设置RadioButton的相对位置,于是,通过下面代码,实现了一行显示2列RadioButton,目前还未测试在不同分辨率下是否会出现误差。效果图如下:
布局代码如下:
<?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:id="@+id/layout_sort" android:layout_width="fill_parent" android:layout_height="120px" android:layout_weight="1" android:orientation="vertical" android:layout_gravity="center" android:gravity="center" android:layout_margin="5px" android:paddingLeft="10px" android:paddingRight="10px" android:paddingTop="5px" android:paddingBottom="5px"> <ScrollView android:layout_width="fill_parent" android:layout_height="wrap_content" android:scrollbars="vertical" android:fadingEdge="vertical"> <LinearLayout android:id="@+id/layout_sort0" android:layout_width="fill_parent" android:layout_height="wrap_content" android:orientation="vertical"> <LinearLayout android:id="@+id/layout_sort1" android:layout_width="fill_parent" android:layout_height="wrap_content" android:orientation="vertical" android:layout_gravity="left" android:gravity="left"> <TextView android:id="@+id/rename_sortTitle" android:layout_width="fill_parent" android:layout_height="32px" android:singleLine="true" android:textSize="20sp" android:textStyle="bold" android:gravity="center_vertical|left" android:layout_gravity="center_vertical|left" android:text="请选择排序方式:" /> <RadioGroup android:id="@+id/orderBy" android:layout_width="fill_parent" android:layout_height="wrap_content" android:orientation="vertical"> <RadioButton android:id="@+id/orderBy1" android:text="名称" android:layout_width="wrap_content" android:layout_height="wrap_content" /> <RadioButton android:id="@+id/orderBy2" android:text="日期" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_marginLeft="120px" android:layout_marginTop="-48px"/> <RadioButton android:id="@+id/orderBy3" android:text="类型" android:layout_width="wrap_content" android:layout_height="wrap_content" /> <RadioButton android:id="@+id/orderBy4" android:text="大小" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_marginLeft="120px" android:layout_marginTop="-48px" /> <RadioButton android:id="@+id/orderBy5" android:text="系统默认" android:layout_width="wrap_content" android:layout_height="wrap_content" /> </RadioGroup> <View android:layout_width="fill_parent" android:layout_height="1dip" android:background="#ff666666" /> <RadioGroup android:id="@+id/orderLx" android:layout_width="wrap_content" android:layout_height="wrap_content"> <RadioButton android:id="@+id/orderLx1" android:text="升序" android:layout_width="wrap_content" android:layout_height="wrap_content"/> <RadioButton android:id="@+id/orderLx2" android:text="降序" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_marginLeft="120px" android:layout_marginTop="-48px" /> </RadioGroup> </LinearLayout> <LinearLayout android:id="@+id/layout_sort2" android:layout_width="fill_parent" android:layout_height="wrap_content" android:orientation="horizontal" android:layout_gravity="center" android:gravity="center"> <Button android:id="@+id/sortOk" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="确定" android:layout_margin="5px"/> <Button android:id="@+id/sortCancel" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="取消" android:layout_margin="5px"/> </LinearLayout> </LinearLayout> </ScrollView> </LinearLayout>
通过修改 RadioButton的android:layout_marginLeft和android:layout_marginTop属性实现