RecyclerView 分页功能

为什么分页?

从开发者的角度来看,如何加载所有内容?一次不可能显示很多的内容。我们只能显示它们的部分。

分页允许用户看到最新的内容,等待时间很少。当我们在用户滚动到底部时加载下一个“页面”,更多的内容被加载并可用。

何时使用分页?

如果你有大量的内容需要太长时间才能加载。这可以是本地数据库或API调用。那么使用分页是有意义的。如果您从数据库中提取数据,请分批请求数据(每个请求20个)。同样的情况也适用于API调用。

Android分页与RecyclerView

① 自定义OnScrollListener
public abstract class PaginationScrollListener extends RecyclerView.OnScrollListener {

    LinearLayoutManager layoutManager;

    public PaginationScrollListener(LinearLayoutManager layoutManager) {
        this.layoutManager = layoutManager;
    }

    @Override
    public void onScrolled(RecyclerView recyclerView, int dx, int dy) {
        super.onScrolled(recyclerView, dx, dy);

        int visibleItemCount = layoutManager.getChildCount();
        int totalItemCount = layoutManager.getItemCount();
        int firstVisibleItemPosition = layoutManager.findFirstVisibleItemPosition();

        if (!isLoading() && !isLastPage()) {
            if ((visibleItemCount + firstVisibleItemPosition) >= totalItemCount
                    && firstVisibleItemPosition >= 0) {
                loadMoreItems();
            }
        }
    }

    protected abstract void loadMoreItems();

    public abstract int getTotalPageCount();

    public abstract boolean isLastPage();

    public abstract boolean isLoading();
}

如果要启用分页,我们必须要检测达到列表(RecyclerView)的结尾。PaginationScrollListener才能启用分页。

② 布局设置

创建一个布局RecyclerView和一个ProgressBar(用于指示初始内容的加载)。

 
     
     
  
RecyclerView 分页功能_第1张图片
pagination-scroll-output.gif

到这里咱们就结束了。

快乐生活!快乐工作!快乐编程!

你可能感兴趣的:(RecyclerView 分页功能)