
安卓用RecyclerView实现一层的展开与折叠
发布日期:2021-05-08 01:16:44
浏览次数:19
分类:精选文章
本文共 720 字,大约阅读时间需要 2 分钟。
类似于上图的功能实现(展开只显示一层)
实现这个之前没有找到比较好的解决方案,现在才发现系统有个这个的控件:ExpandableListVIew.也是实现显示一层的折叠与展开。不过既然自己已经实现了,也不想白白浪费精力,所以写出来,以后也好自己看看(虽说写的不咋地,最起码也是实现了。)
开始:整体的布局是2个RecyclerView嵌套完成的,最外面一个大的Recyclerview包括标题和内容,里面一个图片的Recyclerview,这个暂不多说,主要还是说展开与折叠,这里面我是把内容和图片的Recyclerview当成一个整体,这样可以很好的显示与隐藏,我们直接看代码,然后在讲解;
这里的展开我是用的checkbox,这样可以更方便的知道展开与折叠。
这句话主要是判断是手动点击才触发点击事件(是为了当我setChecked()时会触发此listener),说一下大体思路:其实和多选差不多,首先创建一个集合,泛型是Interger类型,如果当我点击展开,就把当前的位置添加到集合里面去,然后改变字体颜色,显示图片布局,如果为false就是收起,然后遍历集合所以元素,如果其中一个和当前点击的值一样,说明当前元素所对应的checkbox为false,然后在在把当前的元素给清空,因为集合里面装的都是展开的位置。
最后的一个判断,是我后面添加的,因为我以为写完上面的就完美了,岂不知还有复用这个bug,因为当你第一个展开的时候,往下一直拉,会发现其他的复用条目也是展开的,这不是玩我呢吗?所以加这个判断就是为了当界面往下拉刷新界面的时候,会从新判断当前位置在不在集合里面,在的话就展开,不在就收起,这样就解决复用的问题了。over
发表评论
最新留言
留言是一种美德,欢迎回访!
[***.207.175.100]2025年03月27日 16时37分26秒
关于作者

喝酒易醉,品茶养心,人生如梦,品茶悟道,何以解忧?唯有杜康!
-- 愿君每日到此一游!
推荐文章
多线程之旅(准备阶段)
2021-05-09
Python 之网络式编程
2021-05-09
MySql5.5安装步骤及MySql_Front视图配置
2021-05-09
springmvc Controller详解
2021-05-09
mybatis #{}和${}区别
2021-05-09
Java Objects工具类重点方法使用
2021-05-09
Java内存模型(JMM)
2021-05-09
AQS相关
2021-05-09
abp(net core)+easyui+efcore实现仓储管理系统——多语言(十)
2021-05-09
WCF学习之旅—第三个示例之一(二十七)
2021-05-09
java ThreadPoolExecutor初探
2021-05-09
Markdown进阶
2021-05-09
快速指数算法
2021-05-09
python去除字符串中的特殊字符(爬虫存储数据时会遇到不能作为文件名的字符串)
2021-05-09
PHP将网址快捷方式保存到桌面
2021-05-09
SpringCloud微服务(03):Hystrix组件,实现服务熔断
2021-05-09