public abstract class LeftRecyclerOnScrollListener extends RecyclerView.OnScrollListener { // 用来标记是否正在向左滑动 private boolean isSlidingToLeft = false; @Override public void onScrollStateChanged(RecyclerView recyclerView, int newState) { super.onScrollStateChanged(recyclerView, newState); LinearLayoutManager manager = (LinearLayoutManager) recyclerView.getLayoutManager(); // 当不滑动时 if (newState == RecyclerView.SCROLL_STATE_IDLE) { // 获取最后一个完全显示的itemPosition int lastItemPosition = manager.findLastCompletelyVisibleItemPosition(); int itemCount = manager.getItemCount(); // 判断是否滑动到了最后一个item,并且是向左滑动 if (lastItemPosition == (itemCount - 1) && isSlidingToLeft) { // 加载更多 onLoadMore(); Log.e("tag",lastItemPosition+""+(itemCount-1)); } } } @Override public void onScrolled(RecyclerView recyclerView, int dx, int dy) { super.onScrolled(recyclerView, dx, dy); // dx值大于0表示正在向左滑动,小于或等于0表示向右滑动或停止 isSlidingToLeft = dx > 0; //dx用来判断横向滑动方向,dy用来判断纵向滑动方向 //dx>0:向右滑动,dx<0:向左滑动 //dy>0:向下滑动,dy<0:向上滑动 // if (dy > 0) { // isSlidingToLeft = true; // } else { // isSlidingToLeft = false; // } } public abstract void onLoadMore(); }
reycleview向左滑动 是否为最后一个
最新推荐文章于 2022-02-18 15:03:28 发布