打造属于你的Recyclerview的LoadMoreListener

这里就将一下思路。

一般来说自定义的loadmore在recyclerview是通过滚动监听到你指定的位置来触发相应的代码处理逻辑。

那么我们就定义一个类来继承RecyclerView.OnScrollListener

public abstract class LoadMoreListener extends RecyclerView.OnScrollListener {
    private 你的layoutManager layoutManager;
    private int lastVisibleItem,total;//定义最后一个可见的item和总item数量
    private int earleCountForAutoLoad=1;//提前一个加载
    public abstract void onLoadMore();//外部实现这个方法
    public void setEarlyCountForAutoLoad(int earleCountForAutoLoad){
        this.earleCountForAutoLoad=earleCountForAutoLoad;;
    }//用来备用更改提前多少加载

    @Override
    public void onScrollStateChanged(RecyclerView recyclerView, int newState) {
        super.onScrollStateChanged(recyclerView, newState);
        if (newState == RecyclerView.SCROLL_STATE_IDLE){
            if (lastVisibleItem>0&&lastVisibleItem>=total-earleCountForAutoLoad){

                onLoadMore();//然后在外部实现onLoadMore
            }
        }
    }

    @Override
    public void onScrolled(RecyclerView recyclerView, int dx, int dy) {
        super.onScrolled(recyclerView, dx, dy);
        if(recyclerView.getLayoutManager() instanceof GridLayoutManager){
          
        }

    }
}

具体实现,不给了。

·步骤,在adapter里设置footview

实现相应逻辑

activity里面

mRecyclerView.addOnScrollListener(new LoadMoreListener() {

            @Override
            public void onLoadMore() {
             
                你的加载更多的逻辑
            }
        });

我个人是用来处理加载网络更多的数据,我的接口文档中有params
limit:Integer 请求个数
skip:Integer 起始位置

所以我每次加载更多都要重新发起一条网络请求

如果想复制粘贴可以直接退出这篇文章了

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值