【问题标题】:How to observe current page number in Paging library, when user scrolls up用户向上滚动时如何观察分页库中的当前页码
【发布时间】:2019-07-06 20:31:13
【问题描述】:

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

在 DataSource 类中我有价值:

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

每个“loadAfter”函数都会更新。

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

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

【问题讨论】:

  • 你是在使用 RecyclerView 还是别的什么?
  • @HossamEldeenOnsy RecyclerView 与 PagedListAdapter。
  • RecyclerView 有 onScrollListener ,它在滚动时输入,就像这里 stackoverflow.com/a/29026504/7586266 一样,因为你得到 currentFirstVisible 你可以用它来检查你在哪个页面
  • @HossamEldeenOnsy 谢谢,这是一个很好的观点。现在我需要以某种方式为我的响应 List 中的每个项目分配页码,因为从 api GET 调用我得到:data class MovieResponse( val page: Int, val total_pages: Int, val results: List&lt;Movie&gt; )
  • 嗯只是一个想法,主要是位置是大局的一部分,所以你可以简单地将当前位置除以列表当前大小,你会得到你想要的页面

标签: android scroll android-mvvm android-paging android-paging-library


【解决方案1】:

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

至于获取您滚动到大部分位置的页面是大图的一部分,因此您可以简单地将 currentFirstVisible 位置除以列表当前大小,您将获得您想要的页面是愿望

参考:RecyclerView.OnScrollListener-Docs

【讨论】:

    猜你喜欢
    • 2016-04-24
    • 2017-01-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-05-17
    • 1970-01-01
    相关资源
    最近更新 更多