有没有一种方法可以检测到用户正在尝试滚动recyclerview而未发生实际滚动?例如,垂直的回收站视图位于其顶部位置,用户尝试向上滚动它。
答案 0 :(得分:1)
是的,您可以使用回收站视图的onScroll功能检测滚动行为。
recyclerView
.addOnScrollListener(new RecyclerView.OnScrollListener() {
@Override
public void onScrolled(RecyclerView recyclerView,
int dx, int dy) {
super.onScrolled(recyclerView, dx, dy);
lastVisibleItem = linearLayoutManager
.findLastVisibleItemPosition();
if (!loading
&& totalItemCount <= (lastVisibleItem + visibleThreshold)) {
// Do something
}
}
});
}
正如您在上面看到的那样,(linearLayoutManager.findLastVisibleItemPosition();)为您提供了最后一个可见位置,一旦用户尝试滚动回收器视图,它就会改变最后一个可见位置。
即使dx也会给您int:水平滚动量和dy(int)会给您垂直滚动量。 如果在布局计算后可见项范围发生更改,则也会调用此回调。在这种情况下,dx和dy将为0。