RecyclerView

2019-09-26  本文已影响0人  Dream_Book

滚动监听

setOnScrollListener(已经过期)

addOnScrollListener

  recyclerView.addOnScrollListener(new RecyclerView.OnScrollListener() {
            
            @Override//状态改变时候调用
            public void onScrollStateChanged(RecyclerView recyclerView, int newState) {
                super.onScrollStateChanged(recyclerView, newState);
                if (newState == SCROLL_STATE_IDLE) {
                   //静止没有滚动
                } else if (newState == SCROLL_STATE_DRAGGING) {
                  //正在被外部拖拽,一般为用户正在用手指滚动
                } else if (newState == SCROLL_STATE_SETTLING) {
                  //自动滚动
                }
            }

            @Override//列表滚动时调用
            public void onScrolled(RecyclerView recyclerView, int dx, int dy) {
                super.onScrolled(recyclerView, dx, dy);

                 /**
                 recyclerView : 当前滚动的view
                 dx : 水平滚动距离
                 dy : 垂直滚动距离

                 dx > 0 时为手指向左滚动
                 dx < 0 时为手指向右滚动
                 dy > 0 时为手指向上滚动
                 dy < 0 时为手指向下滚动
                 */
            }
        });

是否还可以滑动(向上、下、左、右)

/**
判断View在竖直方向是否还能向上,向下滑动。
@param direction为 -1 表示手指向下滑动, 1 表示手指向上滑动

isVertically1 == false表示已经滚动到底部
isVertically2 == false表示已经滚动到顶部
*/
boolean isVertically1 = recyclerView.canScrollVertically(1);
boolean isVertically2= recyclerView.canScrollVertically(-1);

/**
判断 水平方向的滑动
@param direction为 -1 表示手指向左滑动, 1 表示手指向右滑动
*/
boolean isHorizontally = recyclerView.canScrollHorizontally(1);
上一篇下一篇

猜你喜欢

热点阅读