自定义RecycleView滑动监听类
Posted liyanyan665
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了自定义RecycleView滑动监听类相关的知识,希望对你有一定的参考价值。
public class UpPullRecyclerViewOnScrollListener extends RecyclerView.OnScrollListener
//监听回调
private UpPullOnScrollListener listener;
public UpPullRecyclerViewOnScrollListener(UpPullOnScrollListener listener)
this.listener = listener;
/**
* 标记是否正在向上滑动
*/
boolean isUpPull = false;
@Override
public void onScrollStateChanged(RecyclerView recyclerView, int newState)
super.onScrollStateChanged(recyclerView, newState);
LinearLayoutManager manager = (LinearLayoutManager) recyclerView.getLayoutManager();
if (newState == RecyclerView.SCROLL_STATE_IDLE)
//总数
int itemCount = manager.getItemCount();
//最后显示的位置
int lastItemPosition = manager.findLastCompletelyVisibleItemPosition();
if (lastItemPosition == (itemCount - 1) && isUpPull)
listener.onLoadMoreData();
//第一个显示的位置
int fristItemPosition = manager.findFirstCompletelyVisibleItemPosition();
if (fristItemPosition == (0) && !isUpPull)
listener.onRefreshData();
@Override
public void onScrolled(RecyclerView recyclerView, int dx, int dy)
super.onScrolled(recyclerView, dx, dy);
// 大于0表示正在向上滑动,小于等于0表示停止或向下滑动
isUpPull = dy > 0;
---------------------
以上是关于自定义RecycleView滑动监听类的主要内容,如果未能解决你的问题,请参考以下文章
1.Android recycleView万能分隔线 GridLayoutManager布局item左右间距均等(最易懂)