RecycleView 二级列表(多级列表)

这篇具有很好参考价值的文章主要介绍了RecycleView 二级列表(多级列表)。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

RecycleView实现二级列表(可以实现多级列表)

RecyclerView做的二级列表比官方的ExpandableListView二级列表效率高一些貌似

RecycleView 二级列表(多级列表)

1.自己的Adapter继承RecyclerView.Adapter

2.然后搞两个 int 类型的成员变量表示item是几级

3. List里面这个就是数据源了 只不过这个存放的类型是个接口类型的数据 自己的一级item和二级item都去实现这个接口 然后这个适配器就可以add这个接口类型的数据了 原理就是这样 接下来看实际操作

RecycleView 二级列表(多级列表)

基本操作

4. getItemCount 直接返回上面数据源的大小就行 return data.size

5. 然后是getItemViewType 这里用instanceof判断一下item是几级的 然后返回出去对应的类型就行

6. 下面两个holder 一个一级Holder 一个二级Holder 这个就不需要多解释了

7. 接下来就是在数据源里处理数据了

!!!!!!切记我们要首先add进来一级列表 所以需要setInitData一下 我这里是这样处理的

RecycleView 二级列表(多级列表)

设置进来的list取一级的bean去给数据源添加进去 然后刷新一下notifyDataSetChanged(); 这时候大家应该可以想到了现在adapter用上的话应该就是展示了一级列表了 但是怎么点击一下展示出来二级列表呢?这时候就需要在onBindViewHolder里面进行控制一些点击事件了

RecycleView 二级列表(多级列表)

这里是我做的一下展示是否展开的处理 大家可以不看 主要看我holder.itemView.setOnClickListener里面的事件

RecycleView 二级列表(多级列表)

上面return前的可以不看 是我做的一些单选的东西 不是有关展开一级列表的东西 主要看

int pos = holder.getAdapterPosition(); 下面的这些 这个是取个position用来操作去add的位置和remove的位置

然后如果不是展开的情况的话就去for了他的二级列表 然后 data.add(拿数据源去add进去) 这时候要在这个点击的一级的item这里展开 所以就用到了我们刚刚取的pos(游标) 然后进行 notifyItemInserted(pos + 1); 完事的话记得把这个bean里的 isExpandABC 字段设置为true 以上就是展开事件的原理了 接下来看收回 收回也是同理 for一下他的二级列表 然后拿data数据源去remove掉每个二级的item (这里只是用一下for的次数 for的内容完全没用到) remove掉之后就该刷新ui了 直接 notifyItemRemoved(pos + 1); 完事 大功告成 搞完之后记得把 isExpandABC 字段设置为false 接下来补上实体类的图

RecycleView 二级列表(多级列表)文章来源地址https://www.toymoban.com/news/detail-404543.html

Details是2级的 BudgetTypeBean是1级的 一目了然了吧 是不是挺简单的

如果有疑问不懂的加我Q:

到了这里,关于RecycleView 二级列表(多级列表)的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • Android: ExpandableListView 二级列表 使用教程

    android:childDivider:指定各组内子类表项之间的分隔条,图片不会完全显示, 分离子列表项的是一条直线 android:childIndicator:显示在子列表旁边的Drawable对象,可以是一个图像 android:groupIndicator:显示在组列表旁边的Drawable对象,可以是一个图像 android:childIndicatorEnd:子列表项指示

    2023年04月18日
    浏览(27)
  • 导航栏以及二级菜单栏(下拉列表)的制作

           作为新手小白,在我们熟悉了HTML , CSS,JS的功能和语法之后,Web前端开发中,更重要的还有界面的美化,主要依据CSS的庞大功能来实现,今天我来给大家分享的是,利用html代码来实现横向导航栏以及下拉菜单列表的实现。 下面是导航栏:   带有下拉列表的导航栏:

    2024年02月03日
    浏览(31)
  • 一个Adapter+recycleview实现多种布局,区分布局中

    最近因为需要所以学习了一下recycleview,使用Adapter修饰器修饰,使用一个Adapter+recycleview实现多种布局,而不是之前的三个Adapter在同一个recycleview中实现三个布局。点击区分布局中的gridview的图片和姓名。 嗯~,算是之前的在同一个recycleview中实现三个不同布局的升级版吧。因为

    2024年01月20日
    浏览(36)
  • Android RecycleView实现平滑滚动置顶和调整滚动速度

    目录 一、滑动到指定位置(target position)并且置顶 1. RecycleView默认的几个实现方法及缺陷 2. 优化源码实现置顶方案 二、调整平移滑动速率 三、其他方案:置顶、置顶加偏移、居中 1. 其他置顶方案 2. 置顶加偏移 3. 滚动居中     在实际项目里,RecycleView 可以说是我们最常

    2024年04月08日
    浏览(88)
  • RecycleView小结

    一级缓存:用于存放当前屏幕可显示区域的ViewHolder,目的是为了方便更新数据,以及对View操作时更加快捷 二级缓存:用于缓存最近滑动出屏幕的ViewHolder,目的是为了当用户将该View滑出屏幕外时又突然滑回来时能够快速显示,最多能缓存2个ViewHolder,不需要重新绑定数据,只

    2023年04月08日
    浏览(28)
  • 如何实现多级缓存?

    冗余设计是在系统或设备完成任务起关键作用的地方,增加一套以上完成相同功能的功能通道(or 系统)、工作元件或部件,以保证当该部分出现故障时,系统或设备仍能正常工作,以减少系统或者设备的故障概率,提高系统可靠性。 开始前呢,给大家推荐一个程序员好物,

    2024年02月22日
    浏览(33)
  • java实现多级菜单

    2024年02月14日
    浏览(27)
  • 简易oled多级菜单实现

      最近在学习如何实现oled多级菜单时,查看了大多数博主发的文章,大概似懂的文章内容可让我好一阵思考,于是我觉得应该有一篇更加简单易懂的文章能轻易上手;我们实现项目时一定先要准备以下知识点:1. 结构体 2.结构体数组 3.函数指针 (如果还有没有这方面的C语言

    2024年02月05日
    浏览(57)
  • RecycleView加载大量图片卡顿优化

    RecycleView实现类似相册功能的时候,在加载大量图片的时候,快速滑动的时候能感到明显的卡顿,因此需要我们根据滑动状态去做优化。 我们可以监听RecycleView滑动状态,当处于滑动状态时,不进行图片的加载,当滑动停止时才进行图片的加载。网上解决方法基本都是这样的

    2024年02月08日
    浏览(38)
  • Vue的多级路由实现缓存处理

    代码如下: 需要在路由前置守卫调用handleKeepAlive () 注意:多级路由出口为位置增加name=‘layout’,就可以实现多级路由的缓存

    2024年02月11日
    浏览(29)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包