Android 可以多行多列的单选列表——MultiLineRadioGroup

项目需要用到一个多行多列的单选列表,用RadioGroup组合或者Recyclerview、GridLayout单独实现的话很是麻烦,所以就自己根据RadioGroup和GridLayout的特性搬了一个。。。怎么说是搬呢?其实MultiLineRadioGroup继承于GridLayout,但是里面实现的代码都是照搬RadioGroup的。

GitHub地址:https://github.com/zhumj/MultiLineRadioGroupDemo

先来张效果图:
在这里插入图片描述
使用示例:

<?xml version="1.0" encoding="utf-8"?>
<androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    tools:context=".MainActivity">

    <com.example.multilineradiogroupdemo.MultiLineRadioGroup
        android:id="@+id/rgTest"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:columnCount="4"
        android:orientation="horizontal"
        app:layout_constraintLeft_toLeftOf="parent"
        app:layout_constraintTop_toTopOf="parent"
        app:layout_constraintRight_toRigh
  • 1
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
实现 el-table 表格多行多列单选框,每列只能选一个,需要使用 el-radio-group 和 el-radio 组件配合使用。 1. 在 el-table 的 columns 中添加一个 type 为 selection 的列,用于显示单选框。 2. 在 el-table 的 data 中添加一个属性,用于存储每行选中的单选框的值。 3. 在 el-table 的 template 中,使用 el-radio-group 组件包裹 type 为 selection 的列,绑定 v-model 为每行选中的单选框的值。 4. 在 el-radio 组件中,绑定 v-model 为当前单选框的值,并设置相同的 name,以保证每列只能选一个。 示例代码如下: ```html <el-table :data="tableData" style="width: 100%"> <el-table-column type="selection"></el-table-column> <el-table-column prop="name" label="姓名"></el-table-column> <el-table-column prop="age" label="年龄"></el-table-column> <el-table-column prop="gender" label="性别"></el-table-column> <el-table-column prop="hobby" label="爱好"></el-table-column> <template slot-scope="scope"> <el-radio-group v-model="scope.row.selected"> <el-radio :label="1" :name="'gender'+scope.$index"></el-radio> <el-radio :label="2" :name="'gender'+scope.$index"></el-radio> <el-radio :label="3" :name="'gender'+scope.$index"></el-radio> </el-radio-group> </template> </el-table> ``` ```javascript export default { data() { return { tableData: [ { name: '张三', age: 18, gender: 1, hobby: '篮球', selected: '' }, { name: '李四', age: 20, gender: 2, hobby: '足球', selected: '' }, { name: '王五', age: 22, gender: 3, hobby: '羽毛球', selected: '' }, { name: '赵六', age: 24, gender: 1, hobby: '乒乓球', selected: '' }, ], }; }, }; ``` 在上面的代码中,每行数据都添加了一个属性 selected,用于存储选中的单选框的值。在 el-radio 组件中,绑定 v-model 为当前单选框的值,并设置相同的 name,以保证每列只能选一个。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值