【发布时间】:2019-06-14 07:35:10
【问题描述】:
有没有办法检测到用户正在尝试滚动 recyclerview 并且没有发生实际滚动?例如,垂直回收器视图位于其顶部位置,用户尝试向上滚动。
【问题讨论】:
标签: android android-recyclerview scroll
有没有办法检测到用户正在尝试滚动 recyclerview 并且没有发生实际滚动?例如,垂直回收器视图位于其顶部位置,用户尝试向上滚动。
【问题讨论】:
标签: android android-recyclerview scroll
是的,您可以使用回收站视图的 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。
【讨论】: