RecyclerView实现分批分页、上拉加载更多功能
2017-12-08 09:21
399 查看
RecyclerView越来越替代ListView,如何上拉加载更多呢?
Step 1:自定义Listener继承recyclerView的OnScrollListener
Step 2:调用的地方
就是这么方便简单;
Step 1:自定义Listener继承recyclerView的OnScrollListener
public abstract class EndLessOnScrollListener extends RecyclerView.OnScrollListener { //声明一个LinearLayoutManager private LinearLayoutManager mLinearLayoutManager; //当前页,从0开始 private int currentPage = 0; //已经加载出来的Item的数量 private int totalItemCount; //主要用来存储上一个totalItemCount private int previousTotal = 0; //在屏幕上可见的item数量 private int visibleItemCount; //在屏幕可见的Item中的第一个 private int firstVisibleItem; //是否正在上拉数据 private boolean loading = true; public EndLessOnScrollListener(LinearLayoutManager linearLayoutManager) { this.mLinearLayoutManager = linearLayoutManager; } @Override public void onScrolled(RecyclerView recyclerView, int dx, int dy) { super.onScrolled(recyclerView, dx, dy); visibleItemCount = recyclerView.getChildCount(); totalItemCount = mLinearLayoutManager.getItemCount(); firstVisibleItem = mLinearLayoutManager.findFirstVisibleItemPosition(); if (loading) { if (totalItemCount > previousTotal) { //说明数据已经加载结束 loading = false; previousTotal = totalItemCount; } } //这里需要好好理解 if (!loading && totalItemCount - visibleItemCount <= firstVisibleItem) { currentPage++; onLoadMore(currentPage); loading = true; } } /** * 提供一个抽闲方法,在Activity中监听到这个EndLessOnScrollListener * 并且实现这个方法 */ public abstract void onLoadMore(int currentPage); }
Step 2:调用的地方
private Handler handler = new Handler();
mRecyclerView.addOnScrollListener(new EndLessOnScrollListener(mLinearLayoutManager) { @Override public void onLoadMore(int currentPage) { if (pageIndex == pages) { return; } showWaitDialog(); handler.postDelayed(new Runnable() { public void run() { //请求网络 pageIndex++; getData(); mAdapter.notifyDataSetChanged(); } }, 500); } });
就是这么方便简单;
相关文章推荐
- RecycleView上拉加载更多、实现分批分页功能
- 为RecyclerView添加分页加载(上拉加载更多)功能
- Recylerview 加载更多功能实现(分页加载)
- 使用RecyclerView 和SwipeRefreshLayout实现上拉加载更多功能
- XRecyclerView:实现下拉刷新、滚动到底部加载更多以及添加header功能的RecyclerView
- RecyclerView上拉加载更多功能回弹实现
- Android Recyclerview实现上拉加载更多功能
- Recylerview 加载更多功能实现(分页加载)
- Android RecyclerView上拉加载更多功能回弹实现代码
- XRecyclerView实现下拉刷新、滚动到底部加载更多等功能
- RecyclerView实现底部加载更多功能
- RecyclerView+SwipeRefreshLayout+ViewPager实现上拉加载更多下拉刷新和添加Banner(附源码)
- RecyclerView实现上拉分页加载以及下拉刷新
- 为Recycler添加下拉刷新,上拉加载更多功能(简单实现)
- 在Android Studio上使用GSON+VOLLEY,秒处理网络数据成集合。感受框架的力量。搭配RecyclerView和SwipeRefreshLayout,实现底端加载更多,下拉刷新。
- Android使用RecyclerView实现上拉加载更多,下拉刷新,分组显示
- RecyclerView加载更多数据的三种不同的实现方式
- RecyclerView 轻松实现下拉刷新,上拉加载更多,添加HeaderView
- SwipeRefreshLayout配合RecyclerView实现下拉刷新和上拉加载更多以及没有数据的显示
- Android实现RecyclerView的下拉刷新和上拉加载更多