Android RecyclerView点击展开、折叠效果的实现方式
实现效果
思路
我使用的是第三方适配器BaseRecyclerViewAdapterHelper
但是遇到一个问题
这个适配器2.0和3.0不兼容 而2.0版本 没有折叠效果这个组件 我用3.0版本 gradle一直依赖不了
怎么办?
只能寻找其他方法来实现 我想到的是在用两层 RecyclerView
的办法
在第一次的item布局里嵌套第二次RecyclerView
觉得可行 就开始写代码 最终结果还可以优化 就是上面的样子 实现了点击折叠和展开的效果
代码
代码实现比较简单
唯一要说的就是通过一个Flag
来更改折叠状态
在第一层的adapter
中可以设置一个标记位
//默认是关闭private boolean isOpen = false;public boolean isOpen() {return isOpen;}public void setOpen(boolean open) {isOpen = open;}
然后在 convert
方法中 来切换数据的状态
if (isOpen) {mRecyclerView.setVisibility(View.VISIBLE);linearLayout.setVisibility(View.VISIBLE);view.setBackgroundResource(R.mipmap.icon_more_than_open);} else {mRecyclerView.setVisibility(View.GONE);linearLayout.setVisibility(View.GONE);view.setBackgroundResource(R.mipmap.icon_more_than);}
最后在数据展示的那个页面 调用Adapter里的折叠方法
mAdapter.setOnItemClickListener((adapter, view, position) -> {if (mAdapter.isOpen()) {mAdapter.setOpen(false);} else {mAdapter.setOpen(true);}//这个是渲染数据后 刷新 不然看不到数据mAdapter.notifyDataSetChanged();});
最后提示
adapter里的布局 建议设置成 wrap_content
android:layout_width="match_parent"android:layout_height="wrap_content"
为什么呢?
如果设置了固定尺寸 他是没有那种折叠效果的 会占的空间比较大 数据多少 排版很难看
总结
一点点在进步 以前没做过的 通过思路把它变成自己的知识
2021-继续加油~
Android RecyclerView点击展开、折叠效果的实现方式相关推荐
- android RecyclerView一步步打造分组效果、类似QQ分组、折叠菜单、分组效果(二)
第一篇链接: android RecyclerView一步步打造分组效果.类似QQ分组.折叠菜单.分组效果(一) 注!已更新代码! 上一篇写了分组效果的初步实现: 这一篇就继续增加分组折叠效果和基类的 ...
- android RecyclerView一步步打造分组效果、类似QQ分组、折叠菜单、分组效果(一)
第二篇文章链接: android RecyclerView一步步打造分组效果.类似QQ分组.折叠菜单.分组效果(二) 效果图: 前言 之前看到这种效果如果用recyclerview来实现没有一点思路, ...
- android 评论的展开功能,Android开发实现ListView点击展开收起效果示例
本文实例讲述了Android开发实现ListView点击展开收起效果.分享给大家供大家参考,具体如下: 废话不说先上效果: 实际上这是采用一个ExpandableListView实现的 布局文件很简单 ...
- android 展开收起功能,Android开发实现ListView点击展开收起效果示例
本文实例讲述了Android开发实现ListView点击展开收起效果.分享给大家供大家参考,具体如下: 废话不说先上效果: 实际上这是采用一个ExpandableListView实现的 布局文件很简单 ...
- android 实现控件搜索折叠效果 Animation动画折叠和普通折叠
android 实现控件搜索折叠效果 Animation动画折叠和普通控件直接折叠效果: 原理很简单,都是获取对应的高度,通过实现高度变化而改变显示效果: 话不多说直接上代码 1.普通折叠效果,以下是 ...
- html实现文字隐藏展开特效代码,js实现点击展开隐藏效果(实例代码)
js实现点击展开隐藏效果(实例代码) 发布时间:2020-09-20 10:47:49 来源:脚本之家 阅读:69 作者:laozhang 本章给大家介绍用js事件冒泡实现鼠标点击显示提示框效果(代码 ...
- android 文字点击展开,仿微信朋友圈,文字展开全文,全文收起功能
android:id="@+id/tv_expand_or_fold" android:layout_width="wrap_content" android: ...
- WPF实现圆形菜单动态展开折叠效果
实现效果如下: 思路:根据子菜单个数计算旋转角度动态生成子菜单,并设置展开折叠动画. 步骤: 1.自定义按钮MyButton,建立展示图像属性DisplayImage public class MyB ...
- Vue 实现展开折叠效果
效果参见:https://segmentfault.com/q/1010000011359250/a-1020000011360185 上述链接中,大佬给除了解决方法,再次进行总结,方便以后使用. 除 ...
最新文章
- Django--Uploaded Files以及Handlers
- 【机器视觉】 convert_vector_to_tuple算子
- jquery ajax php获取,使用jquery ajax获取php结果
- 最简单的设置按钮的鼠标悬停效果
- 信息学奥赛一本通(2026:【例4.12】阶乘和)
- ARMs3c2440开发板挂接NFS服务
- python中usecols_Python学习路线?
- 【Vegas原创】GridView跨页选择多行数据,并循环添加一行DataSet数据
- 安编译器错误_centos 安装pcre报c++编译器错误
- 水面反光如何拍摄_拍照反光太难看?这八个办法值得一试!
- [LibTorch Win] 各版本 LibTorch 下载
- pmbok第六版_英文版(带目录).pdf_书籍分享 | 高等数学(第六版)含解析~同济大学...
- 等保要求的 linux 系统扫描脚本
- 100行JS代码实现❤坦克大战js小游戏源码 HTML5坦克大战游戏代码(HTML+CSS+JavaScript )...
- Java微服务面试题及答案2022,微服务面试题2022
- YOLOv3原理详解(绝对通俗易懂)2021-07-01
- 阿里P7、P8、P9级别需要多少年的工作经验,还是因能力而定?
- 微信小号赚钱(转载)
- goldengate mysql to oracle,goldengate mysql to oracle OGG-00146 求助!
- Python 遗传算法实现字符串