BaseRecyclerViewAdapterHelper3.x版使用指南

最新版 BaseRecyclerViewAdapterHelper4:4.*.*的使用,包含BaseQuickAdapter列表适配器、列表拖拽、左右滑动删除 和 BaseMultiItem多布局 最新版 BaseRecyclerViewAdapterHelper4:4.1.2 最简单的QuickViewHolder用法,最简洁的代码,复制可用】可以根据自己的需求复制对应模块的内容即可! 阅读详情

BaseRecyclerViewAdapterHelper的作者很勤快,BaseRecyclerViewAdapterHelper库也很优秀,平常工作中,都是使用BaseRecyclerViewAdapterHelper开发的,用习惯了,有点依赖放不开咯!

3.x版也是更新很长时间,还没来得及体验,其实不是,之前那会升级过一次,很懵逼,不知咋用,和旧版使用有很大区别,后面考虑到项目的原因,同时也没有太多时间去研究,故依然使用2.x版。

最近换工作,有了更多空闲时间,是时候来想学习3.x版使用,这里只是涉及平常使用最多的地方,没有更深入的研究,当然了,后面会继续深入学习。共勉!

目前使用BaseRecyclerViewAdapterHelper最新版是3.0.6版,3.x版后很多写法都发生很大变化。下面我们通过一个简单的例子来学习。

效果图:
在这里插入图片描述
代码:

    private RecyclerView mJokeRecycler;
    private JokeAdapter jokeAdapter;
    private Joke mJoke;
    private List<Joke> mListJoke;
    private List<Joke> mNewListJoke;

    protected void initView() {
        mJokeRecycler = findViewById(R.id.rv_joke);
        mListJoke = new ArrayList<>();
        mNewListJoke = new ArrayList<>();
    }

    protected void initData() {
        for (int i = 0; i < 20; i++) {
            mJoke = new Joke();
            mJoke.setJokeTitle(i+"默认数据");
            mListJoke.add(mJoke);
        }
        setRecyclerView();
    }

    private void setRecyclerView() {
        //new GridLayoutManager(getContext(), 3, GridLayoutManager.VERTICAL, false)
        mJokeRecycler.setLayoutManager(new LinearLayoutManager(JokeActivity.this, LinearLayoutManager.VERTICAL, false));
        jokeAdapter = new JokeAdapter(R.layout.item_rv_joke, mListJoke);
        mJokeRecycler.setAdapter(jokeAdapter);
        //mListRecycler.setNestedScrollingEnabled(false);
        jokeAdapter.setOnItemClickListener(new OnItemClickListener() {
            @Override
            public void onItemClick(BaseQuickAdapter adapter, View view, int position) {
                
            }
        });
        //3.x版使用
        jokeAdapter.getLoadMoreModule().setOnLoadMoreListener(new OnLoadMoreListener() {
            @Override
            public void onLoadMore() {
                mNewListJoke.clear();//注意清理集合,不然上拉加载的数据会出现重复
                request();
            }
        });
        jokeAdapter.getLoadMoreModule().setAutoLoadMore(false);
        //当自动加载开启,同时数据不满一屏时,是否继续执行自动加载更多(默认为true)
        jokeAdapter.getLoadMoreModule().setEnableLoadMoreIfNotFullPage(false);
        //1.上拉加载=2.x版使用
        /*jokeAdapter.setOnLoadMoreListener(new BaseQuickAdapter.RequestLoadMoreListener() {
            @Override
            public void onLoadMoreRequested() {
                mJokeRecycler.postDelayed(new Runnable() {
                    @Override
                    public void run() {
                        if (mCurrentCounter >= TOTAL_COUNTER) {
                            //数据全部加载完毕
                            jokeAdapter.loadMoreEnd();
                        }else {
                            if (!isErr) {
                                isUpdate = true;
                                //成功获取更多数据
                                jokeAdapter.addData(getServerDatas());
                                mCurrentCounter = jokeAdapter.getData().size();
                                jokeAdapter.loadMoreComplete();
                            } else {
                                //获取更多数据失败 PullToRefreshUseActivity
                                isErr = true;
                                Toast.makeText(JokeActivity.this, "获取更多数据失败", Toast.LENGTH_LONG).show();
                                jokeAdapter.loadMoreFail();

                            }
                        }
                    }

                }, 2000);
            }
        }, mJokeRecycler);*/
    }

    private void request() {
        //省略网络请求数据......
        //网络请求成功后下拉刷新与上拉加载都做如下处理:

        for (int j = 0; j < 10; j++) {
            mJoke = new Joke();
            mJoke.setJokeTitle(j+"上拉加载更多数据");
            mNewListJoke.add(mJoke);
        }

//        if (isUpdate) {
            //不是第一页,则用add
            jokeAdapter.addData(mNewListJoke);
//        } else {
//            //如果是加载的第一页数据,用 setData()
//            jokeAdapter.setList(mNewListJoke);
//        }

        //如何判断已经加载完数据
        if (mNewListJoke.size() < PAGE_SIZE) {
            //如果不够一页,显示没有更多数据布局
            jokeAdapter.getLoadMoreModule().loadMoreEnd();
        } else {
            jokeAdapter.getLoadMoreModule().loadMoreComplete();
        }
        // page加一
        //++page;

    }


适配器

/**
 * Created by Administrator on 2021/5/23.
 * @author 小红妹
 */

public class JokeAdapter extends BaseQuickAdapter<Joke, BaseViewHolder> implements LoadMoreModule {

    //这里需要注意一下,2.x版是有@Nullable,3.x版需要去掉,不然,首次默认加载的数据会出现重复
    /*public JokeAdapter(int layoutResId, @Nullable List<Joke> data) {
        super(layoutResId, data);
    }*/

    public JokeAdapter(int layoutResId, List<Joke> data) {
        super(layoutResId, data);
    }

    @Override
    protected void convert(BaseViewHolder helper, Joke item) {
        //加载网络图片  mURL
        helper.setText(R.id.tv_joke_item_title, item.getJokeTitle())
                .setText(R.id.tv_joke_item_time,item.getJokeTime()+"");
//        if (item.getClassificationName().length() > 5) {
//            helper.setText(R.id.tv_list_name, item.getClassificationName().substring(0,5)+"...");
//        } else {
//            helper.setText(R.id.tv_list_name, item.getClassificationName());
//        }

    }

}

RecyclerView框架——BRVAH3.x使用指南 前言 最近开始了实习,熟悉项目时,发现一些RecyclerView的Adapter类都继承了一个名为BaseQuickAdapter的类,百度得知这是由BRVAH(官方网站)提供的万用适配器,相比原始的适配器,能减少70%的代码。遂学习之,学习后发现针不戳,只要熟悉RecyclerView的基础使用即可快速上手,并且框架高度封装,能极大提高开发效率。另外,不熟悉RecyclerView使用的同学可以看看我之前的文章:Android——RecyclerView使用汇总 框架引入 首先在build.gradle 阅读详情

相关推荐

Android快速Adapter使用:BaseRecyclerViewAdapterHelper

BaseRecyclerViewAdapterHelper 一个非常简单灵活且强大的adapter GitHub: https://github.com/CymChad/BaseRecyclerViewAdapterHelper 配套文档: https://github.com/CymChad/BaseRecyclerViewAdapterHelper/blob/master/readme/1-BaseQuickAdapter.md 1. 导入 根目录build添加jitpack allprojects {

qq_43203586的博客 3069

BRVAH官方使用指南(持续更新)

www.recyclerview.org 官方网站:www.recyclerview.org BRVAH是一个强大的RecyclerAdapter框架(什么是RecyclerView?),它能节约开发者大量的开发时间,集成了大部分列表常用需求解决方案。为什么会有它?请查看「Android开源框架BRVAH由来篇」该框架于2016年4月10号发...

SolarLove的博客 1983

BaseRecyclerViewAdapterHelper的部分功能

BaseRecyclerViewAdapterHelper的部分功能

海阔天空 978

BaseRecyclerViewAdapterHelper 简单使用记录

1,BaseRcycleViewAdapterHelper 是一个强大而灵活的RecyclerView Adapter库,支持单布局,多布局,分组布局,空布局,添加头部,添加尾部,支持拖拽、滑动、删除,此外还有加载动画效果等。新旧数据的差异化对比是异步的,不会导致UI阻塞,不仅适合常用列表,也适合超大数据列表、超频繁的数据刷新列表(例如:股票实时涨跌列表)进行组合,从而实现“向上加载”、“向下加载”、“头部”、“尾部”的功能。来构建,必须传递你的列表adapter,build时包含Api如下。

weixin_45215447的博客 6703

BaseRecyclerViewAdapterHelper3

加入刷新加载功能

echarts实现折线图上下限区域展示

效果图: 画这种区域中主要是利用了series的两个属性: 思路:上下限都画上区域,然后折线利用图形透明度隐藏,给上区域加上颜色,给下区域加上白色(echarts图背景是啥色,就加啥色) lineStyle: { opacity: 0 }, // 图形透明度。支持从 0 到 1 的数字,为 0 时不绘制该图形 areaStyle: { color: 'rgba(0,122,255,0.1)' }, // 填充的颜色 我的需求是最大天数、最小天数、

小太阳的博客 1万+

BaseRecyclerViewAdapterHelper 2.x升级3.x避坑指南

升级动机: 2.x版本不在进行新功能的增加,同时3.x版本多布局更佳灵活,考虑到经常使用该库,所以进行升级 项目地址: https://github.com/CymChad/BaseRecyclerViewAdapterHelper 普通改动点: helper.addOnClickListener修改为addChildClickViewIds,且不能放在convert中,java需要 放在构造方法中,kotlin放在init中 BaseViewHolder导包修改 import com.chad

phuket_js的博客 2100

从零构建OpenBMC风扇控制:基于phosphor-pid-control的实战配置指南

本文详细介绍了如何从零开始构建OpenBMC风扇控制系统,基于phosphor-pid-control框架实现风扇自动调速。通过解析PID算法配置、传感器定义及控制区域设置,提供工业级散热解决方案,帮助开发者优化服务器能效与可靠性。

weixin_29263201的博客 747

BaseRecyclerViewAdapterHelper实现拖拽Item

导入依赖 implementation 'com.github.CymChad:BaseRecyclerViewAdapterHelper:2.9.46' 创建适配器: public class ScanPayAdapter extends BaseItemDraggableAdapter<ScanPayBean,BaseViewHolder> { public Sca...

qq_39252578的博客 3082

Verilog语法之十:过程块(initial和always)

我将Verilog的语法进行了总结,写了13篇文章,让小白“快速见识猪如何跑”,每一篇讲解一类语法,结合正确的示例代码和错误的示例代码,有的章节对个别语法进行了归纳总结,帮助初学者加深理解。

航天领域资深码农,型号经验丰富,一线干货分享 1671

vivado生成及调用自定义IP的方法

开发环境:vivado 2018.2 1.将整个工程封装为自定义IP 将整个工程封装为自定义IP主要有以下步骤: 步骤1.选中工程中的top模块。点击Tools ------> Create and Package New IP,如图1所示 图1 步骤2.弹出界面后,点击next至图2界面,选择Package your current project,然后继续点击next 图2 步骤3.选择生成的IP路径,如图3所示。这个路径就是后续添加该IP的路径 图3 步骤4.继续点击next,然后选择fi

进击的阿日比 4726

BaseRecyclerViewAdapterHelper终极指南:5个必备技巧让RecyclerView开发效率翻倍

BaseRecyclerViewAdapterHelper(简称BRVAH)是一个强大而灵活的RecyclerView适配器库,专门为Android开发者设计。它能显著简化RecyclerView的使用,提供丰富的功能模块,让列表开发变得前所未有的高效。😊 ## 🎯 为什么选择BaseRecyclerViewAdapterHelper? 传统的RecyclerView适配器开发需要编写大量

gitblog_01060的博客 509

时间序列分析(Time Series Analysis) 原理与代码实例讲解

时间序列分析(Time Series Analysis) - 原理与代码实例讲解 作者:禅与计算机程序设计艺术 / Zen and the Art of Computer Programming 关键词:时间序列预测,ARIMA模型,状态空间模型,SARIMA模型,机器学习

AI天才研究院 1246

BaseRecyclerViewAdapterHelper简单使用

BaseRecyclerViewAdapterHelper也比以前的BaseAdapter效率更高,极大程度的减少了代码量

qq_28026283的博客 1258

Android CCodec (十一) Codec2Buffer BufferPool分析

1、序言 2、C2BlockPool分析 3、SimpleC2Component关于BlockingBlockPool的实现 4、总结

给大佬递杯卡布奇诺的博客 4021

jdk-8u144-linux-x64.tar.gz.

该资源为搭建Linux系统Java环境用,资源的后缀为tar.gz格式的压缩包

BaseRecyclerViewAdapterHelper 第三方的万能适配器

一.地址: 二.导入依赖: 三.BaseRecyclerViewAdapterHelper实现简单布局 1.在布局文件中引入RecyclerView 2.编写条目布局文件 3.编写数据实体类型 4.编写适配器 四.BaseRecyclerViewAdapterHelper设置事件监听 五.BaseRecyclerViewAdapterHelper设置子控件事件监听 六.BaseRecyclerVi...

qq_45488134的博客 628

复分析 阿尔福斯(Ahlfors) 第三版答案 英文

答案分为十章,有部分习题没有答案,全英文复分析阿尔福斯(Ahlfors) 第三版答案

BaseRecyclerViewAdapterHelper 完全使用指南

BaseRecyclerViewAdapterHelper(简称BRVAH)是一个强大而灵活的RecyclerView适配器框架,专门为简化Android开发而生。该项目采用Kotlin为主要开发语言,完美兼容Java项目,提供了丰富的功能和简洁的API。 ## 核心功能模块 ### 基础适配器类型 BRVAH 4.x版本提供了多种基础适配器类型,满足不同场景需求: - **BaseQui

gitblog_01034的博客 1217

OV9734 DATASHEET,完整规格书

OV9734完整规格书,包括电气参数,尺寸规格,寄存器配置表等

android BaseRecyclerViewAdapterHelper 二级item

官网:https://github.com/CymChad/BaseRecyclerViewAdapterHelper 在这里简单说明记录一下,它有两个版本2.x和3.x版 我这里用的是最新的3.x,环境也是在,用的是androidx: compileSdkVersion 29 buildToolsVersion "29.0.2" 上图: 1.添加依赖 implementation 'com.github.CymChad:BaseRecyclerViewAdapte...

qq_36771930的博客 2264

BaseRecyclerViewAdapterHelper开源项目之BaseViewHolder源码学习

接下来假设一个场景来分析,假设我们要给一个TextView控件设置一段文字进行显示,一般我们会使用该方法。 holder.setText(R.id.xxx,"hello world");   public BaseViewHolder setText(int viewId, CharSequence value) { TextView view = getView(view

Angels_安杰的博客 771

BaseRecyclerViewAdapterHelper 安装和配置指南

### 项目基础介绍 BaseRecyclerViewAdapterHelper(简称BRVAH)是一个强大的RecyclerView适配器框架,旨在简化Android开发中RecyclerView的使用。它集成了大部分列表常用需求解决方案,能够显著减少开发者在开发列表界面时的工作量。 ### 主要编程语言 该项目主要使用Kotlin和Java两种编程语言。 ## 2. 项目使用的关键技术和框

gitblog_00049的博客 398

Android RecyclerView开发:BaseRecyclerViewAdapterHelper核心功能与高阶实践

在Android应用开发中,RecyclerView是构建高效滚动列表和网格布局的核心组件,它基于适配器模式将数据与视图动态绑定。其工作原理是通过ViewHolder实现视图复用,大幅优化了内存和渲染性能。这一机制的技术价值在于能够流畅展示大量数据,是提升用户体验的关键。在实际开发中,RecyclerView适配器的编写往往涉及多类型视图、事件绑定、空状态和分页加载等通用场景。BaseRecyclerViewAdapterHelper(BRVAH)作为一个功能全面的封装库,通过模板方法等设计模式,将这类通用

weixin_33978044的博客 369

RecyclerView分组之BaseRecyclerViewAdapterHelper(实现分组功能)

1.前言 相信很多小伙伴之前用过listview列表展示数据,然后RecyclerView应该不会陌生,大多数开发者应该都使用上它了,它也是google推荐替换ListView的控件,但是用过它的同学应该都知道它在某些方面并没有ListView使用起来方便。下面要给大家介绍的是一个开源库BaseRecyclerViewAdapterHelper,下面我是以一个分组列表作为一个列子: 源码地址请戳这里

夏轩00的博客 1万+

最新版 BaseRecyclerViewAdapterHelper4:4.1.2 最简单的QuickViewHolder用法,最简洁的代码,复制可用

【代码】最新版 BaseRecyclerViewAdapterHelper4:4.1.2 最简单的QuickViewHolder用法,最简洁的代码,复制可用。

ERP_LXKUN_JAK 5273

Android利用BaseRecyclerViewAdapterHelper开源库实现多布局拖拽功能

最近项目需要一个多种类型图片之间的互相拖拽的效果,之前,由于是采用RecleView嵌套RecleView实现的,所以只能支持单个RecleView之间的相互拖拽,后来采用BaseRecyclerViewAdapterHelper开源库的多布局使用一个RecleView来实现不同类型的拖拽功能。类型是于下面这种布局,不同类型的图片可以互相拖拽: 新建一个可以支持拖拽的adapter,继承自Bas...

cj641809386的专栏 1734
上一篇: ‘void android.view.View.unFocus(android.view.View)‘ on a null object reference
下一篇: Bmob域名绑定教程
小红妹
博客等级 码龄10年 151粉丝 116原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值