其他分享
首页 > 其他分享> > 【2022/01/26】RecyclerView上拉和下拉

【2022/01/26】RecyclerView上拉和下拉

作者:互联网

RecyclerView上拉和下拉

最近为了写一个简易的多选列表功能,使用了RecyclerView,发现如果数据太多的话会发生卡顿,所以决定使用分页,也就是大家常见的上拉加载数据,也有下拉刷新数据,我们这里使用滚动事件addOnScrollListener来完成这个功能。

上拉加载

  1. RecyclerView上添加监听事件
recyclerView.addOnScrollListener(new RecyclerView.OnScrollListener() {
    @Override
    public void onScrollStateChanged(@NonNull RecyclerView recyclerView, int newState) {
        super.onScrollStateChanged(recyclerView, newState);
    }
});
  1. 当我们无法上拉以后,以及松开手指以后,触发数据加载
recyclerView.addOnScrollListener(new RecyclerView.OnScrollListener() {
    @Override
    public void onScrollStateChanged(@NonNull RecyclerView recyclerView, int newState) {
        super.onScrollStateChanged(recyclerView, newState);
	// canScrollVertically参数是1是无法上拉
        if (!recyclerView.canScrollVertically(1) && newState == RecyclerView.SCROLL_STATE_IDLE) {
            // 实现数据加载
        }
    }
});

下拉刷新

  1. 原理跟上拉一样,只是判断无法下拉后,刷新数据
recyclerView.addOnScrollListener(new RecyclerView.OnScrollListener() {
    @Override
    public void onScrollStateChanged(@NonNull RecyclerView recyclerView, int newState) {
        super.onScrollStateChanged(recyclerView, newState);
	// canScrollVertically参数是-1是无法上拉
        if (!recyclerView.canScrollVertically(-1) && newState == RecyclerView.SCROLL_STATE_IDLE) {
            // 实现数据加载
        }
    }
});

标签:26,01,RecyclerView,onScrollStateChanged,addOnScrollListener,newState,recyclerVie
来源: https://www.cnblogs.com/leruge/p/15845404.html