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);