RecyclerView左滑刷新,右滑加载
直接上代码,首先先搞一个滑动的监听的接口,同时在接口里面也写两个接口,更新和加载更多。接着重写onScrolled,onScrollStateChanged方法,别人都是只用重写onScrolled方法,在里面判断是否到达底部,然后加载更多,然后我想更新就不行了,可能是我逻辑没写对。
后面我就自己琢磨了一种方法,根据滑动的值来判断左滑更新和右滑加载。
先说一下onScrolled方法,这个方法,是滑动就会被调用,不过当你滑到底不能再滑的时候就不会调用了。因为是水平滑动,我在这个方法里面获取水平方向滑动的值,正数就是右滑,负数就是左滑。
然后是onScrollStateChanged方法,也是滑动就会调用,不过这个方法滑到底部继续滑还是会调用。该方法好像滑动一次,是会连续调用三次,和newState参数有关,滑动一次有三种状态。当时还不知道newState这个参数有什么用,所以我设置了一个标志位status,等于3才调用一次判断。当滑动到底部继续滑的时候,dx就会被重置为0,而dx1是非0,根据dx1的正负值可以判断是左滑到底还是右滑到底。
下面直接上代码,可以直接复制使用。
public abstract class OnLoadMoreListener extends RecyclerView.OnScrollListener {
private GridLayoutManager layoutManager;
private int itemCount, lastPosition, lastItemCount, dx = 0, dx1