【发布时间】: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<Movie> ) -
嗯只是一个想法,主要是位置是大局的一部分,所以你可以简单地将当前位置除以列表当前大小,你会得到你想要的页面
标签: android scroll android-mvvm android-paging android-paging-library