BRVAH(BaseRecyclerViewAdapterHelper)详解

一.什么是BaseRecyclerViewAdapterHelper

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

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

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

二.框架引用

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

BRVAH(BaseRecyclerViewAdapterHelper)详解_第1张图片

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

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

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

三.代码使用

3.1adapter

BRVAH(BaseRecyclerViewAdapterHelper)详解_第2张图片

使用

首先需要继承BaseQuickAdapter,然后BaseQuickAdapter第一个泛型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添加点击事件

Item的点击事件

BRVAH(BaseRecyclerViewAdapterHelper)详解_第3张图片

Item的长按事件

子控件点击事件

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

BRVAH(BaseRecyclerViewAdapterHelper)详解_第4张图片

然后监听

BRVAH(BaseRecyclerViewAdapterHelper)详解_第5张图片

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

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

3.3添加列表加载动画

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

BRVAH(BaseRecyclerViewAdapterHelper)详解_第6张图片

BRVAH(BaseRecyclerViewAdapterHelper)详解_第7张图片

3.4添加头部、尾部

BRVAH(BaseRecyclerViewAdapterHelper)详解_第8张图片

BRVAH(BaseRecyclerViewAdapterHelper)详解_第9张图片

BRVAH(BaseRecyclerViewAdapterHelper)详解_第10张图片

3.5设置空布局

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

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

3.6adapter获取当前位置

通过item对象获取位置

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

3.7获取父类对象

BRVAH(BaseRecyclerViewAdapterHelper)详解_第11张图片

3.8多级adapter关键方法

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

你可能感兴趣的:(RecyclerView,BRVAH,RecyclerView框架,setEmptyView,collapse,expand)