让RecyclerView支持加载更多(Endless RecyclerView)

android RecyclerView 加载更多封装 ——可直接复制使用 前言在android开发中经常会用到RecyclerView,在重复的造轮子之后,决定对RecyclerView进行封装。在参考了鸿洋的为RecyclerView打造通用Adapter 让RecyclerView更加好用文章后,发现其中有很多自己用不到的,于是根据他的代码改了自己常用的recyclerview 加载更多功能。使用代码中有CommonAdapter以及ViewHolder两个类,可直... 阅读详情

好久没有写博客,最近正好有时间,打算把之前很长很长一段时间落下的坑都给填了。

在Android的Support包中我们有很多新的组件可以使用,比如代替ListView的RecyclerView。使用RecyclerView和SwipeRefreshLayout组合,我们可以实现很酷炫的下拉刷新的功能。但是,事情总不是那么美好,有了下拉刷新,却找不到上拉加载更多(我们已经习惯了PullToRefresh),最终还是放弃了使用RecyclerView。现在看来,自己实在是太懒了。好了,今天就让我们的RecyclerView支持加载更多。

RecyclerView的的使用多数是与SwipeRefreshLayout进行组合,当然,你也可以算上CardView。使用SwipeRefreshLayout时,受PullToRefresh的影响,很自然的会想到给SwipeRefreshLayout加个上拉加载更多的功能。如果你也这么想,那么我们就一起来YY下google为什么没有官方支持这么做。

1、给SwipeRefreshLayout添加加载更多功能:我们期望的(比如:SwipeRefreshLayout + RecyclerView,但是google没这么做)。如果SwipeRefreshLayout中是TextView或者自定义的View,很显然,我们并不能保证这个加载更多是可以实现的(即使实现了,他们耦合也会很高)。

2、给RecyclerView添加加载更多功能:这个方案是可行的

3、给其他更多SwipeRefreshLayout包含的view添加加载更多功能:第二种情况的扩展,这个根据具体的view来讨论


因此,我们应该把加载更多放到具体的view中。下面我们支持加载更多的代码:

/*
 * Created by ttdevs 9/3/15 1:31 PM. https://github.com/ttdevs
 * Copyright (c) 2015 ttdevs, Inc. All rights reserved.
 */

package com.ttdevs.support.recycler;

import android.support.v7.widget.LinearLayoutManager;
import android.support.v7.widget.RecyclerView;

import com.ttdevs.utils.LogUtils;

/**
 * RecyclerView加载更多的类,支持LinearLayoutManager和GridLayoutManager
 * 使用:
 * RecyclerView.addOnScrollListener(new OnRecyclerLoadMoreListener(){
 *  public void onLoadMore(){...}
 *  });
 */
public abstract class OnRecyclerLoadMoreListener extends RecyclerView.OnScrollListener{
        
    private LinearLayoutManager mLayoutManager;
    private int mItemCount, mLastCompletely, mLastLoad;

    /**
     * load more
     */
    public abstract void onLoadMore();

    @Override
    public void onScrolled(RecyclerView recyclerView, int dx, int dy) {
        if (recyclerView.getLayoutManager() instanceof LinearLayoutManager) {
            mLayoutManager = (LinearLayoutManager) recyclerView.getLayoutManager();

            mItemCount = mLayoutManager.getItemCount();
            mLastCompletely = mLayoutManager.findLastCompletelyVisibleItemPosition();
        } else {
            return;
        }

        if (mLastLoad != mItemCount && mItemCount == mLastCompletely + 1) {
            LogUtils.debug(String.format("****************load more****************"));
            LogUtils.debug(String.format("mItemCount:%d \t mLastCompletely:%d", mItemCount, mLastCompletely));
            LogUtils.debug(String.format("****************load more****************"));

            mLastLoad = mItemCount;
            onLoadMore();
        }
    }
}


自定义横向加载更多的recyclerview package com.android.xjq.view; import android.content.Context; import android.graphics.Color; import android.support.annotation.NonNull; import android.support.annotation.Nullable; import android.supp... 阅读详情

相关推荐

自定义RecyclerView实现下拉刷新与上拉加载更多功能实战

虽然默认提供了 Material Design 风格的刷新动画,但在品牌化应用或深色主题中,原生样式可能显得突兀。为此,系统提供了丰富的 API 支持颜色、大小、甚至自定义 ProgressDrawable 的修改。同时,添加文字提示能显著提升可用性,尤其是在弱网环境下。init();textView.setText("下拉刷新...");// 添加到布局@Override在现代移动应用中,列表数据的无限滚动已成为标准交互模式之一。

weixin_42527665的博客 1165

推荐开源项目:rv-adapter-endless——打造无尽滚动的RecyclerView体验

推荐开源项目:rv-adapter-endless——打造无尽滚动的RecyclerView体验 在当今移动应用的世界里,流畅且无缝的滚动体验对于提升用户体验至关重要。今天,我们特别推荐一款针对Android开发者设计的开源神器 —— rv-adapter-endless。这款库专门用于为Android平台上的RecyclerView添加优雅的“无限滚动”功能,极大地简化了分页加载数据的实现过程。...

gitblog_00395的博客 880

自定recyclerView实现下拉刷新,加载更多!!

自定recyclerView实现下拉刷新,加载更多!! 博客介绍地址:http://blog.youkuaiyun.com/qifengdeqingchen/article/details/52371513

RecyclerView 无限滚动适配器常见问题解决方案

RecyclerView 无限滚动适配器常见问题解决方案 1. 项目基础介绍和主要编程语言 本项目是一个开源项目,提供了一个用于Android中RecyclerView的无限滚动适配器。它可以帮助开发者轻松实现列表的无限加载功能。主要编程语言为Java。 2. 新手常见问题及解决步骤 问题一:如何将项目集成到现有项目中? 解决步骤: 在项目的build.gradle文件中添加依赖项: comp...

gitblog_00413的博客 567

汽车TARA分析实战:从威胁建模到安全需求落地的完整指南

在汽车电子电气系统开发中,威胁分析与风险评估(TARA)是确保功能安全与网络安全的核心方法论。其原理在于通过结构化的流程,系统性地识别资产、分析威胁场景并评估风险,旨在将安全理念前置,从设计源头规避风险。这一过程的技术价值在于将模糊的安全担忧转化为可量化、可追溯的工程需求,从而指导资源精准投放,是符合ISO 26262和ISO/SAE 21434标准要求的关键实践。其应用场景贯穿智能汽车从概念设计到系统开发的各个阶段,尤其对于涉及自动驾驶、智能座舱、车云通信等复杂功能的域控制器开发至关重要。本文聚焦于TAR

weixin_42706667的博客 306

SOC Boot学习(二)——JTAG Debug介绍

JTAG(Joint Test Action Group ,联合测试行动小组 ) 是一种国际标准测试协议,主要用于芯片内部测试及对系统进行仿真、调试。JTAG 技术是一种嵌入式调试技术,它在芯片内部封装了专门的测试电路 TAP ( Test Access Port ,测试访问口),通过专用的 JTAG 测试工具对内部节点进行测试。如今大多数比较复杂的器件都支持 JTAG 协议,如 ARM 、 DSP 、 FPGA 器件等。

yttt的博客 1610

EndlessRecyclerViewAdapter:实现RecyclerView无限滚动功能的Java库

EndlessRecyclerViewAdapter:实现RecyclerView无限滚动功能的Java库 1. 项目基础介绍与主要编程语言 EndlessRecyclerViewAdapter 是一个开源项目,旨在为Android开发者提供一种简单的方式来实现RecyclerView的无限滚动功能。该项目的核心是一个支持无限滚动的RecyclerView适配器,通过它可以轻松加载和显示更多数据。...

gitblog_00404的博客 312

CSRT跟踪算法的使用

Fu Xianjun. All Rights Reserved. 文章目录 前言 一、CSRT跟踪算法是什么? 二、使用步骤 1.引入库 2.读入数据 总结 前言 随着人工智能的不断发展,机器学习这门技术也越来越重要,很多人都开启了学习机器学习,本文就介绍了机器学习的基础内容。 提示:以下是本篇文章正文内容,下面案例可供参考 一、CSRT跟踪算法是什么? 在具有通道和空间可靠性的判别相关滤波器(DCF-CSR)中,我们使用空间可靠性图将滤波器支持调整为从帧中选择区.

sinat_53821602的博客 7906

Recyclerview 加载更多 EndlessRecyclerViewScrollListener 和 SwipeRefreshLayout刷新后 无法加载更多

之前用的一个加载更多的代码是网上的EndlessRecyclerViewScrollListener  发现有个问题,平时加载更多没有任何问题。但是 和SwipeRefreshLayout 使用时,下拉刷新的时候,就无法再加载更多了,。 EndlessRecyclerViewScrollListener 代码如下 public abstract class EndlessRecyclerVie

TracyEminem的博客 933

Arduino IDE 2配置ESP32-S3工程全指南

嵌入式开发中,Arduino框架通过硬件抽象层(HAL)大幅降低MCU入门门槛,其核心在于板级支持包(BSP)与底层构建系统(如ESP-IDF)的精准协同。理解CPU频率、Flash模式、分区表、PSRAM等关键配置,本质是掌握SoC时钟树、SPI Flash通信协议、内存映射与FreeRTOS调度机制的技术原理。这些参数不仅决定固件能否启动,更直接影响功耗、实时性、OTA升级与大容量应用(如LVGL、TFLite Micro)的可行性。本文以ESP32-S3为例,聚焦Arduino IDE 2.x环境下从

root9的博客 784

手把手教你用周立功USBCANFD-200U和ZCANPRO软件,从驱动安装到UDS诊断一条龙搞定

本文详细介绍了如何使用周立功USBCANFD-200U硬件和ZCANPRO软件,从驱动安装到UDS诊断的全流程操作指南。涵盖硬件连接、软件配置、CAN通信测试及UDS诊断实战,帮助汽车电子爱好者和工程师快速掌握CAN总线通信技术,实现专业的车辆诊断功能。

weixin_30752699的博客 580

RecyclerView 上拉加载更多

没有srListView 的可以不管。

丿灬安之若死 583

【电子元件篇】MOSFET场效应管作用、选型和测量指南-超简单解读

场效应管是一种电压控制型半导体器件,相比三极管具有输入阻抗高、噪声小、功耗低等优势。主要分为结型和绝缘栅型两大类,后者又可分为耗尽型和增强型MOS管。场效应管通过栅极电压控制漏极电流,具有转移特性和输出特性两大静态特性,以及快速的开关特性。其关键参数包括饱和漏源电流、夹断电压、跨导等,应用场景涵盖信号放大、恒流源、阻抗变换等领域。使用时需根据电路需求选择合适类型,如结型管适合一般放大,功率MOSFET适合高压大电流场合。检测时可用万用表电阻档初步判断好坏和放大能力。

2301_81299416的博客 2543

RecyclerView 自带的上拉加载更多

RecyclerView 大家肯定很熟悉,平常使用的时候也难免会遇到下拉刷新和上拉加载更多,网上相关的控件也是多如牛毛。我特别期待谷歌什么时候能够自己开发一个,可惜一直到现在,也只有一个SwipeRefreshLayout下拉刷新控件,上拉加载连个影子都没。。。 如果不想使用第三方的控件,又想有上拉加载更多功能怎么办呢?于是上网查了相关资料,发现RecyclerView有一个监听方法addOnSc...

冰封砺雪 4608

华为OD机考2025C卷 - 高矮个子排队(Java & Python& JS & C++ & C)

华为OD机考2025C卷 - 高矮个子排队。提供在线OJ刷题。Java、C++、Python、C语言、JavaScript题解,并提供完整思路讲解。

算法大师! 1683

Python爬虫实战:逆向分析+异步技术高效抓取微信公众号文章

逆向突破:解析公众号核心接口参数,破解登录态与加密规则;高性能:异步协程+连接池,单进程日均抓取1000+篇文章;高稳定性:自动刷新登录态、IP代理轮换,无人工干预持续运行;高完整性:覆盖文章全量字段,清洗后可直接用于数据分析。接入消息队列(Kafka),实现分布式多公众号并行爬取;增加文章配图下载模块,完整存档多媒体内容;接入Elasticsearch,实现文章全文检索与关键词分析。

专注于Python爬虫开发,分享爬虫技巧、项目实战与反爬经验,使用Scrapy、BeautifulSoup等工具,解决数据抓取难题。 3263

支持EmptyView和加载更多的RecyclerView

转载请标明出处:http://my.oschina.net/u/2438532/blog/731859,本文出自:吴华友的博客 概述 还在用ListView的童鞋可以试试RecyclerView,RecyclerView显示用的人越来越多,关于RecyclerView的扩展库github上有很...

chuangjueyu9644的博客 127

Devexpress16.2.6破解工具

Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具

Android 支持刷新、加载更多、带反弹效果的RecyclerView

开篇 当前市面上很多支持刷新、加载更多RecyclerView开源库,为何我这里还要自己再写一个?因为市面上的这些支持刷新加载更多的RecyclerView开源库实现方式基本上都是:在Adapter的外层在包裹一层Adapter,这种实现方式主要有以下两个不方便。 1、在用户添加ItemDecoration的时候,会影响到刷新头部和加载更多底部的样式。 2、在用户更新列表某条记录时,不方便找到该记...

Android 开发架构 2917

蓝牙模块HM-10手册

蓝牙模块HM-10手册,该手册对蓝牙模块HM-10进行了详细的介绍和使用方法以及一些AT指令。

ssm框架搭建

这个是一个在idea上成功跑起来的ssm框架项目,保存在这里方便以后使用直接下载

recyclerview实现加载更多

这里并没有重写recyclerview,只是对adapter进行了封装。 封装的adapter /** * * @fuction recycleview 加载更多用的adpter * @date 2018/9/15 * @author zhou */ abstract class RVLoadMoreAdapter<T>( protected var mContext: Context, private val recyclerView: RecyclerView,

stonezry的专栏 732

大中型超市收银系统(可直接运行)

光步前台收银系统系统功能:商品销售、商品退货、挂单、收银员权限、会员销售、单品取消、整单取消、商品查询、脱机销售、脱机数据上传,基本资料下载,开钱箱、小票打印、收款结算,支持多币种付款方式(现金、储值卡、礼券、微信等),支持多种促销。运行环境:.net 4.0登陆信息用户名:1001 密码:123456内置商品信息,商品编码可输入00001000 - 00010000,测试效果相关功能键F5 结算 F9挂单 F11商品查询 F8退货 Insert单品取消 Del整单取消 F12开钱箱F2 会员 Ctrl+Z退出系统 Home 锁屏 相关源码待公开

Android RecyclerView 实现上滑加载更多

此方法的本质:通过方法去触发 adapter 中的getItemCount() 并刷新渲染 position位置视图。其余都是对视图类型的判断、处理。如果是需要加载网络数据,则Loading状态变为:success、loading、error;注:网络加载 可能失败,所以加载时需要判断上次加载情况从而正确渲染此次视图。

gangtiexia003的博客 664

横向加载更多(查看更多)RecyclerView

实现方式是不改变RecyclerView本身,定义了一个父控件装载,查看更多和架子更多的view也同样作为该父控件的子控件。有简单的阻尼回弹效果。 实现代码: public class PulToLeftViewGroupl extends LinearLayout implements ViewTreeObserver.OnGlobalLayoutListener { OnPullToLe

tangzhide的博客 7579

RecyclerView实现加载更多

情景描述我们使用列表显示数据时,通常都会遇到需要加载更多数据的情况,比如列表即将滚动到底部时,我们就需要进行新的数据的获取及填充。本篇博客介绍的是:自定义RecyclerView,添加即将滚动到底部的回调,方便实现加载更多功能。代码/** * Add the callback of reaching bottom into RecyclerView * Support three LayoutM

wiky的专栏 2842

EasyRecyclerView 添加header,footer, 上拉加载更多的recyclerview

EasyRecyclerView EasyRecyclerView 支持添加header、footer,设置空白页面(无数据,网络异常显示)。 上拉加载更多,加载状态,网络异常状态,数据到底状态。 分页加载的全部解决方案,可以直接应用到项目中 github地址:https://github.com/hellosliu/EasyRecyclerView      使用

ashuai2010的专栏 5040

recyclerview嵌套recyclerview刷新_Android 支持刷新、加载更多、带反弹效果的RecyclerView...

点击上方“Android技术杂货铺”,选择“标星”干货文章,第一时间送达!开篇当前市面上很多支持刷新、加载更多RecyclerView开源库,为何我这里还要自己再写一个?因为市面上的这些支持刷新加载更多的RecyclerView开源库实现方式基本上都是:在Adapter的外层在包裹一层Adapter,这种实现方式主要有以下两个不方便。1、在用户添加ItemDecoration的时候,会影...

weixin_39597399的博客 804

Android中RecyclerView实现下拉刷新上拉加载更多

在ListView中实现下拉刷新上拉加载更多是很方便的,在RecyclerView中要实现这个功能,需要一些新的思路,当然习惯后也是很简便的。下面开始这个过程的总结思路在RecyclerView中,默认没有HeaderView和FooterView,所以只能开发者自己来实现这两个View,通常的做法是:使用官方的刷新控件SwipeRefreshLayout来实现下拉刷新,然后自定义一个FooterV

classTC的博客 2105

可以下拉刷新,上拉加载更多的RecyclerView

一、前言            在移动开发过程中,当我们遇到信息展示的时候,往往会选择使用列表的形式。那在Android开发中,我们则会选用ListView来实现这种需求。但是随着Google的不断更新,它为我们提供了新的选择--RecyclerView。由于RecyclerView扩展性比较强,它的一些功能需要使用者自己动手去实现,举个例子:ListView中的headerView与foote

飞鸟与游鱼的博客 1211
上一篇: Facebook Fresco体验 (一)
下一篇: Android本地数据安全尝试(上)——SQLCipher
ttdevs
博客等级 码龄15年 388粉丝 91原创
评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值