转载:http://blog.youkuaiyun.com/aminfo/article/details/7558308
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属性实现