一.什么是BaseRecyclerViewAdapterHelper

GitHub地址:https://github.com/CymChad/BaseRecyclerViewAdapterHelper

官方网站:http://www.recyclerview.org/

BRVAH是一个强大的RecyclerAdapter框架,它能节约开发者大量的开发时间,集成了大部分列表常用需求解决方案。

二.框架引用

先在 build.gradle(Project:XXXX) 的 repositories 添加:

maven { url "https://jitpack.io" }

然后在 build.gradle(Module:app) 的 dependencies 添加:

implementation 'com.github.CymChad:BaseRecyclerViewAdapterHelper:2.9.42'

三.代码使用

3.1adapter

使用

首先需要继承BaseQuickAdapter,然后BaseQuickAdapter<Status, BaseViewHolder>第一个泛型Status是数据实体类型,第二个BaseViewHolder是ViewHolder其目的是为了支持扩展ViewHolder。

赋值

/*给某个控件赋值*/
helper.setText(R.id.inspectionitem_tv, itemname);
/*获取某个控件*/
TextView textView = helper.getView(R.id.inspectionitem_tv);

常用方法

  • viewHolder.getLayoutPosition() 获取当前item的position

3.2添加点击事件

3.2.1Item的点击事件

3.2.2Item的长按事件

3.2.3子控件点击事件

首先在adapter的convert方法里面通过viewHolder.addOnClickListener绑定一下的控件id

然后监听

Item子控件的长按事件
adapter中绑定方法将addOnClickListener改成addOnLongClickListener.
设置点击事件方法setOnItemChildClickListener改成setOnItemChildLongClickListener

注意:设置子控件的事件,如果不在adapter中绑定,点击事件无法生效,因为无法找到你需要设置的控件。

3.2.4adapter中监听

holder.itemView.setOnLongClickListener();

3.3添加列表加载动画

开启动画(默认为渐显效果)
adapter.openLoadAnimation();
默认提供5种方法(渐显、缩放、从下到上,从左到右、从右到左)

3.4添加头部、尾部

3.5设置空布局

// 没有数据的时候默认显示该布局
mQuickAdapter.setEmptyView(getView());

PS:如果用网格布局的话,设置空布局就不能给全屏,可以使用瀑布流布局。

3.6adapter获取当前位置

通过item对象获取位置

//获取当前item的位置
int pos = holder.getAdapterPosition();
// 先获取到当前 item 的父 positon
int positionAtAll = getParentPositionInAll(pos);

3.7获取父类对象

3.8多级adapter关键方法

safetyAppearItem.hasSubItem()//是否有子项
safetyAppearItem.isExpanded()//是否扩展
collapse(item所在位置);//收缩子项
expand(item所在位置);//扩展子项

BRVAH(BaseRecyclerViewAdapterHelper)详解相关推荐

  1. 从命令行到IDE,版本管理工具Git详解(远程仓库创建+命令行讲解+IDEA集成使用)

    首先,Git已经并不只是GitHub,而是所有基于Git的平台,只要在你的电脑上面下载了Git,你就可以通过Git去管理"基于Git的平台"上的代码,常用的平台有GitHub.Gi ...

  2. JVM年轻代,老年代,永久代详解​​​​​​​

    秉承不重复造轮子的原则,查看印象笔记分享连接↓↓↓↓ 传送门:JVM年轻代,老年代,永久代详解 速读摘要 最近被问到了这个问题,解释的不是很清晰,有一些概念略微模糊,在此进行整理和记录,分享给大家.在 ...

  3. docker常用命令详解

    docker常用命令详解 本文只记录docker命令在大部分情境下的使用,如果想了解每一个选项的细节,请参考官方文档,这里只作为自己以后的备忘记录下来. 根据自己的理解,总的来说分为以下几种: Doc ...

  4. 通俗易懂word2vec详解词嵌入-深度学习

    https://blog.csdn.net/just_so_so_fnc/article/details/103304995 skip-gram 原理没看完 https://blog.csdn.net ...

  5. 深度学习优化函数详解(5)-- Nesterov accelerated gradient (NAG) 优化算法

    深度学习优化函数详解系列目录 深度学习优化函数详解(0)– 线性回归问题 深度学习优化函数详解(1)– Gradient Descent 梯度下降法 深度学习优化函数详解(2)– SGD 随机梯度下降 ...

  6. CUDA之nvidia-smi命令详解---gpu

    nvidia-smi是用来查看GPU使用情况的.我常用这个命令判断哪几块GPU空闲,但是最近的GPU使用状态让我很困惑,于是把nvidia-smi命令显示的GPU使用表中各个内容的具体含义解释一下. ...

  7. Bert代码详解(一)重点详细

    这是bert的pytorch版本(与tensorflow一样的,这个更简单些,这个看懂了,tf也能看懂),地址:https://github.com/huggingface/pytorch-pretr ...

  8. CRF(条件随机场)与Viterbi(维特比)算法原理详解

    摘自:https://mp.weixin.qq.com/s/GXbFxlExDtjtQe-OPwfokA https://www.cnblogs.com/zhibei/p/9391014.html C ...

  9. pytorch nn.LSTM()参数详解

    输入数据格式: input(seq_len, batch, input_size) h0(num_layers * num_directions, batch, hidden_size) c0(num ...

  10. Java集合详解之Map

    一.首先看看集合框架体系图 从图中可以看到,Map接口扩展了Iterator接口,关于Iterator接口详解请移步:Iterator接口详解 二.Map是什么? Map<k,v>使用键值 ...

最新文章

  1. python numba jit加速使用方法
  2. TOPAS 命令详解
  3. mysql命令行卡在>>>>>
  4. ArrayList遍历
  5. 多亏它,让大家做好“山竹”来袭的准备【Make It Real故事汇】
  6. istio可以做什么_什么是Istio?
  7. 获取json配置_ASP.NET Core集成Nacos配置中心之适配多格式配置
  8. 【原创】Qt自定义窗口部件
  9. php mysql 备份还原_php 数据库备份还原
  10. python中减号怎么打_我的python将减号与破折号混淆
  11. 《windows核心编程》第6章 线程基础
  12. 滴滴裁员2000人启示:牛逼的人,都有铁饭碗
  13. Day25——组合总和III、电话号码的字母组合
  14. 部署skyWalking
  15. 【Java集合】Java集合一览(汇总)
  16. 抖音搬运被限流评级怎么办,什么是有效申诉和无效申诉丨国仁网络资讯
  17. 时尚大气Mac高清动态壁纸
  18. 全球DAG区块链联盟会议——问答(一)
  19. 【mac】取消crashx代理后上不了网
  20. Mozilla 即谋智人

热门文章

  1. Linux 卸载Mysql
  2. oracle 省份三个字的,中国所有省份的简称是什么?
  3. Win10中卸载IE11
  4. 面向对象设计与构造课程作业 _第三单元总结 _北京航空航天大学计算机学院 2019春季...
  5. SQLServer安装时哪些功能是必需的(sql server 2016安装时选择哪些功能)
  6. 2.6 数值分析: 追赶法
  7. CTF之做题总结(五)
  8. 经典面试题 TCP和UDP有什么区别?
  9. 基于SpringBoot的个人博客系统【完整项目源码】
  10. 考研复习 求解函数极限的方法全总结