RadioGroup的多行布局

本文介绍了如何在Android中使RadioGroup实现多行显示RadioButton,通过设置RadioButton的layout_margin属性来调整位置,以达到一行显示两个的效果。示例代码展示了具体的布局设计,包括使用ScrollView、LinearLayout和RadioButton的组合。此外,还提到了一种手动在代码中管理不同RadioGroup选择状态的笨方法。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

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>

以上是我转载的一篇通过xml文件中的属性设置来达到多行布局radiobutton的文章,下面是我自己实现的笨方法:

具体步骤就是先布局多个radiogroup,然后在java程序中选中一个的同时调用其他组的radiogroup.clearCheck();

评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值