广告
返回顶部
首页 > 资讯 > 精选 >Android中RecyclerView实现多级折叠列表效果(TreeRecyclerView)
  • 161
分享到

Android中RecyclerView实现多级折叠列表效果(TreeRecyclerView)

androidrecyclerview多级列表 2023-05-31 03:05:54 161人浏览 薄情痞子
摘要

前言首先不得不吐槽一下产品,尼玛为啥要搞这样的功能....搞个两级的不就好了嘛...自带控件,多好。三级,四级,听说还有六级的....这样丧心病狂的设计,后台也不好给数据吧。先看看效果:两级的效果:三级的效果:全部展开的效果(我只写了五级)

前言

首先不得不吐槽一下产品,尼玛为啥要搞这样的功能....搞个两级的不就好了嘛...自带控件,多好。三级,四级,听说还有六级的....这样丧心病狂的设计,后台也不好给数据吧。

先看看效果:

两级的效果:

Android中RecyclerView实现多级折叠列表效果(TreeRecyclerView)

三级的效果:

Android中RecyclerView实现多级折叠列表效果(TreeRecyclerView)

全部展开的效果(我只写了五级)

Android中RecyclerView实现多级折叠列表效果(TreeRecyclerView)

说说为什么写这货吧:

公司产品提出三级这个需求后,我就在网上找啊找.

找的第一个,发现实现其实是ExpandListview嵌套.

找的第二个,ExpandRecyclview,然后就用呗,发现三级展开很卡,看源码,

发现是RecyclerView套RecyclerView

就没有不嵌套的么.....

然后找到hongyang的那个博客,写个试试吧.

说说思路:

      1.Treeadapter应该只需要关心List<TreeAdapterItem> datas 的内容

      2.把每个item看成独立的个体,布局样式,每行所占比,bindViewHolder都由自己的来决定。

      3.每一个item应该只关心自己的数据和自己的下一级的数据,不会去关心上上级,下下级

      4.展开的实现,item把子数据集拿出来,然后添加到List<TreeAdapterItem> datas,变成与自己同级,因为每次展开只会展开一级数据。

      5.折叠递归遍历所有子数据,递归拿到自己所有的子数据集(可以理解因为一个文件夹下所有的文件,包括子文件夹下的所有),然后从List<TreeAdapterItem> datas删除这些数据。

见代码:

public abstract class TreeAdapterItem<D> {  protected D data;  protected List<TreeAdapterItem> childs;  protected boolean isExpand;  protected int layoutId;  protected int spanSize; ···· get/set方法省略。。。。 ···· public TreeAdapterItem(D data) { this.data = data; childs = initChildsList(data); layoutId = initLayoutId(); spanSize = initSpansize(); }  public void onExpand() { isExpand = true; }  public void onCollapse() { isExpand = false; }  public List<TreeAdapterItem> getAllChilds() {  ArrayList<TreeAdapterItem> treeAdapterItems = new ArrayList<>();  for (int i = 0; i < childs.size(); i++) {  TreeAdapterItem treeAdapterItem = childs.get(i);  treeAdapterItems.add(treeAdapterItem);  if (treeAdapterItem.isParent()) {   List list = treeAdapterItem.getAllChilds();   if (list != null && list.size() > 0) {   treeAdapterItems.addAll(list);   }  }  }  return treeAdapterItems; }  public boolean isParent() {  return childs != null && childs.size() > 0; }  public int initSpansize() {  return spanSize; }  protected abstract List<TreeAdapterItem> initChildsList(D data);  protected abstract int initLayoutId();  public abstract void onBindViewHolder(ViewHolder holder);}

--结束END--

本文标题: Android中RecyclerView实现多级折叠列表效果(TreeRecyclerView)

本文链接: https://www.lsjlt.com/news/223389.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • Android中RecyclerView实现多级折叠列表效果(TreeRecyclerView)
    前言首先不得不吐槽一下产品,尼玛为啥要搞这样的功能....搞个两级的不就好了嘛...自带控件,多好。三级,四级,听说还有六级的....这样丧心病狂的设计,后台也不好给数据吧。先看看效果:两级的效果:三级的效果:全部展开的效果(我只写了五级)...
    99+
    2023-05-31
    android recyclerview 多级列表
  • Android中RecyclerView实现多级折叠列表效果(二)
    前言在本文开始之前请大家先看一下这篇文章:https://www.jb51.net/article/113510.htm上面的这篇文章是之前写的,里面发现有很多不好用地方,也学到些新姿势,改动了许多地方。下面来看看详细的介绍:要点:&nbs...
    99+
    2023-05-31
    android recyclerview 多级列表
  • iOS实现列表折叠效果
    本文实例为大家分享了iOS实现列表折叠效果的具体代码,供大家参考,具体内容如下 实现列表折叠效果其实比较简单,点击列表头部的时候,把返回列表行数设为 0,就是收起列表;再次点击列表头...
    99+
    2022-05-26
    iOS 列表 折叠
  • android项目中如何实现给RecyclerView加上折叠效果
    android项目中如何实现给RecyclerView加上折叠效果?很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。效果总结一下这个列表的特点,就是以下三点: 重...
    99+
    2023-05-31
    recyclerview android recycle
  • 纯css怎样实现多级折叠菜单折叠树效果
    这篇文章将为大家详细讲解有关纯css怎样实现多级折叠菜单折叠树效果,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。运用checkbox的checked值来判断下级栏目是否展开,CSS3的选择器中提供了:ch...
    99+
    2023-06-08
  • Android TextView实现多文本折叠、展开效果
    背景在开发过程中,当我们的需求中包含说说或者评论等内容的展示时,我们都会考虑当内容太多时该如何显示。当内容的字数太多,如果全部展示出来可能会影响体验效果,但是又不能只截取一部分内容进行展示,此时就需要考虑使用多行显示折叠的效果来实现。效果图...
    99+
    2023-05-31
    android textview roi
  • Android UI实现多行文本折叠展开效果
    上文介绍了单行文本水平触摸滑动效果,通过EditText实现TextView单行长文本水平滑动效果。 本文继续介绍了多行文本折叠展开,自定义布局View实现多行文本折叠和展开 ...
    99+
    2022-06-06
    Android
  • 一文搞懂Android RecyclerView点击展开、折叠效果的实现代码
    RecyclerView是什么        RecycleView是Android5.0后谷歌推出的一个用于在有限的窗...
    99+
    2022-11-12
  • Android中怎么利用RecyclerView实现列表嵌套效果
    Android中怎么利用RecyclerView实现列表嵌套效果,针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。1. 定义多布局对象的基类:public class...
    99+
    2023-05-30
    android recyclerview
  • Android中怎么利用RecyclerView实现数据列表展示效果
    Android中怎么利用RecyclerView实现数据列表展示效果,相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。首先导入依赖: compile '...
    99+
    2023-05-30
    android recyclerview
  • 大数据中分组报表怎样实现折叠伸缩效果
    这篇文章将为大家详细讲解有关大数据中分组报表怎样实现折叠伸缩效果,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。在业务系统中分组统计是比较常见的数据分析形式,但当数据项较多,或分组的层级过多时...
    99+
    2023-06-04
  • 如何在Android应用中实现一个列表悬浮效果
    这期内容当中小编将会给大家带来有关如何在Android应用中实现一个列表悬浮效果,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。具体方法如下:package com.xiaos.view;import an...
    99+
    2023-05-31
    android roi
  • 如何在android中利用listview实现一个列表展示效果
    今天就跟大家聊聊有关如何在android中利用listview实现一个列表展示效果,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。设置条目点击事件package com.it...
    99+
    2023-05-31
    android listview roi
  • Android 开发中怎么利用TreeView实现一个多级树形列表
    今天就跟大家聊聊有关Android 开发中怎么利用TreeView实现一个多级树形列表,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。具体的实现思路参考下面的项目结构和具体代码:Ele...
    99+
    2023-05-31
    android treeview 多级树形列表
  • Android实现在列表List中显示半透明小窗体效果的控件用法详解
    本文实例讲述了Android实现在列表List中显示半透明小窗体效果的控件用法。分享给大家供大家参考,具体如下: Android 在列表List中显示半透明小窗体效果的控件,多...
    99+
    2022-06-06
    窗体 list Android
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作