有没有一种方法可以检测到用户正在尝试滚动回收站视图,而实际的滚动没有发生?例如,垂直回收器视图位于顶部,用户尝试向上滚动它。
发布于 2019-06-14 15:51:48
是的,你可以使用回收器视图的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。
https://stackoverflow.com/questions/56593527
复制相似问题