自定义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左右间距均等(最易懂)

RecycleView的使用+自定义监听事件

怎么关闭android recycleview自带的滑动效果

在Recycler视图中使用数组列表

滑动冲突问题,触摸事件拦截处理

如何禁止recyclerview的滚动时间