用户向上滚动时如何观察分页库中的当前页码

How to observe current page number in Paging library, when user scrolls up

今天,我在使用 TMDb api 的应用程序中实现了分页库。一切正常,但我正在努力显示当前页面。

在 DataSource class 我有值:

val currentPage = MutableLiveData<Page>()   // Page => currentPage, totalPages

每个 "loadAfter" 函数更新一次。

这个MutableLiveData在ViewModel中被观察到,然后显示在Activity中。 当用户向下滚动时,当前页面的数量增加,但当用户向上滚动时,数量保持不变。

有人知道如何通知向上滚动吗?

RecyclerView 有 onScrollListener,当它像 一样滚动时会进入,因为你得到 currentFirstVisible 你可以用它来检查你在哪个页面。

至于让你滚动到的页面大部分位置是大图的一部分所以你可以简单地将 currentFirstVisible 位置除以列表当前大小然后你将获得您想要的页面

参考:RecyclerView.OnScrollListener-Docs