radiogroup多选_类似 RadioGroup 的选中管理布局
按照惯例,先上图:
Screenshot_2018-09-04-19-42-51-171_中国移动.png
类似这样的n选一的需求是很常见的,用原生的 RadioGroup 几乎无法实现,那么就需要一个类似功能 RadioGroup ,可以帮我们管理选中项状态(并且支持设置单选和多选),同时能方便的自定义里面子项的UI布局,要是还能像 list 一样支持用优雅的 adapter 模式设置内容和 layout 就更好了。
于是:
引入
compile 'com.yinzihao:YinLayout:{latest-version}'
使用指南
CommonCheckableGroup
多选或单选项的父布局,类似于{@link android.widget.RadioGroup}。
直接子 view 需要实现{@link Checkable}接口或利用框架中的{@link CheckableTag}(事实上是一个实现了{@link Checkable}接口的{@link FrameLayout})包裹才能被监听选中状态。
在 xml 中使用
android:id="@+id/common_checkable_group"
android:layout_height="wrap_content"
android:layout_width="match_parent"
app:multiple="true"
android:orientation="vertical">
android:background="@drawable/background_selector"
android:layout_height="wrap_content"
android:layout_width="match_parent"
android:padding="10dp"
android:text="选项1"
android:textColor="@android:color/white" />
android:background="@drawable/background_selector"
android:layout_height="wrap_content"
android:layout_marginTop="5dp"
android:layout_width="match_parent">
android:layout_height="wrap_content"
android:layout_width="wrap_content"
android:padding="10dp"
android:text="选项2"
android:textColor="@android:color/white" />
将选项作为 CommonCheckableGroup 的子 view 即可实现所需效果。
xml 中设置 multiple 属性为 ture 则表示可多选。
在代码中使用
commonCheckableGroup.setLayoutAdapter(new BaseLayoutAdapter(getApplicationContext(), stringList, R.layout.checkable_group_layout_item) {
@Override
public void dataBind(View itemView, int position, String data) {
TextView textView = (TextView) itemView.findViewById(R.id.tv_item);
textView.setText(data);
}
});
在代码中通过 adapter 的方式可以更灵活的设置多个选项,BaseLayoutAdapter 构造函数中的第3个参数中的 xml 即每个选项的布局文件,会在 dataBind() 回调中解析为 view 返回。使用者在此方法中将数据源与布局文件绑定显示。
commonCheckableGroup.setCheckedListener(new CommonCheckableGroup.CheckedListener() {
@Override
public void onCheckChange(Checkable checkable) {
List checkedItemList = commonCheckableGroup.getCheckedItemList();
}
});
通过 setCheckedListener() 设置选中事件监听。通过 getCheckedItemList() 得到当前选中的对象列表。
如果你需要在 CheckableGroup 的子项被点击,框架中的选中逻辑被触发之前根据情况拦截此次事件,可以设置拦截器
commonCheckableGroup.setItemClickInterceptor(new CheckableGroupManager.ItemClickInterceptor() {
@Override
public boolean onInterceptorItemClick(Checkable checkable) {
if (...) {
//拦截
return true;
}
//不拦截
return false;
}
});
common_check_layout.gif
radiogroup多选_类似 RadioGroup 的选中管理布局相关推荐
- radiogroup多选_为何多组RadioGroup 里面的RadioButton 会出现多选状态?
为何同一组RadioGroup 里面的RadioButton 会出现多选状态? 最近在做一个项目,有两排RadioGroup,每一排radioGroup有五个radiobutton,我分别给每一个Ra ...
- radiogroup多选_单选按钮和多选按钮
[最后结果显示在一个界面中,但是分开理解] 1.单选按钮(RadioGroup:是单选按钮组和RadioButton) 1)在activity_main.xml中控件是线性布局 xmlns:andro ...
- 将jQuery的复选框设置为“已选中”?
我想做这样的事情来使用jQuery勾选一个checkbox : $(".myCheckBox").checked(true); 要么 $(".myCheckBox&quo ...
- 点击button按钮实现全选_全选按钮的实现及事件的处理
这种全选的效果在后台是很需要的,因为有时候数据很多,如果想删除全部的数据,没有全选按钮岂不是很麻烦,所以很有必要实现这种全选的效果,并执行相关的事件,下面就来看看如何实现 先来看看第一种方法: 首先先 ...
- Leaflet框选截图 网页框选截图 -- 类似QQ截图功能
Leaflet框选截图 网页框选截图 -- 类似QQ截图功能 功能需求 搜索资源 功能拆分 进阶功能 结束语 实现截图(红框中即是将要截取的内容) 下载到本地的截图 功能需求 近日. 项目中有一需求: ...
- android中radiogroup作用,Android View系列---RadioGroup与RadioButton
RadioGroup与RadioButton配合实现一组数据的单选问题. 插播一条信息,在设置RadioButton的textColor的选中效果时,不能在drawable中创建想xml,得在res/ ...
- 【VTK】VTK框选表面拾取面片——仅选中前表面
VTK框选表面拾取面片--仅选中前表面 接上一篇 VTK框选表面拾取三角面片--通过观察者命令模式 上一篇最后遗留一个问题,框选表面后,会把模型背面的面片也一起选中.所以这篇内容是解决该问题的. 效果 ...
- JS判断GridView中复选框有没有被选中
在执行多选操作时,如果在页面前台做下判断,有没有选择要被操作的项,如果没有,提示一下,会给客户一种比较友好的效果. //JS中判断的方法: //判断GridView控件中的复选框有没有被选中的,gdv ...
- layui如何获取父节点的父节点_layui树形组件(右键、父节点选中子节点全被选中)...
一:右键菜单: layui里面没有给到右键菜单,所以,我自己把源码改了一下: 找到layui文件夹里modules下的tree.js 用以上代码,替换以下代码 当i.which等于3,是右键事件,等于 ...
最新文章
- 用FFT求信号相位谱
- OpenCvSharp手绘ROI区域+模板匹配+霍夫变换检测圆的边界
- SQL server2000数据库备份和还原语句
- pygame的学习以及python的巩固(窗口尺寸的显示)
- 自制操作系统学习笔记(1)-虚拟机启动软盘
- jrockit_Java堆空间– JRockit和IBM VM
- Java 9幕后花絮:新功能从何而来?
- python实验练习-类的多继承
- 从创业失败中学到的七条教训
- 10kv电压互感器型号_电气行业需要知道的10KV电压互感器基本技术参数
- noi 3531 判断整除
- 为什么要破坏JVM的双亲委派模型
- 数据科学 IPython 笔记本 8.3 Matplotlib 可视化
- c语言数组处理实验报告心得体会,C语言实验报告总结计划数组.doc
- crop video in ffmpeg
- 【leetcode】91. Decode Ways A-Z的字母表示1-26的数字,反向破解多少种字符串的可能性...
- 真实评测 i3 1115G4和i7 1165G7选哪个
- Windows系统下运行hadoop、HBase程序出错Could not locate executablenull\bin\winutils.exe in the Hadoop binaries
- shell脚本实操学习之函数、正则表达式
- 如何优雅的阅读论文——福昕阅读器
热门文章
- 漫画:脑筋急转弯算法题目(???)
- el-calendar日历组件
- Linux小记--centos,debian系统挂载镜像方式
- acer switch 10 linux,【AcerSwitch10E评测】拆开来用的电脑 Acer Switch 10E评测_Acer Switch 10E_笔记本评测-中关村在线...
- BugFree 的安装
- 机器学习-卷积神经网络之深度残差网络(三)
- HOG特征提取-python实现
- Golang中 int int8 int16 int32 int64的区别和取值范围
- android 魅族手机bug多,魅族Flyme6是悟空请来的?Bug竟然有这么多?
- i7 12700 K和127000 KF差距 i712700 K和127000KF对比