我解析了NewsApi并使用了干净的架构ListAdapter。我需要做“分页”,以便在我的片段是更少的代码。通过使用抽象类或扩展文件,但我不知道,怎么做。我也不明白如何在ListAdapter中做addAll方法,这样过去的项目就不会消失。我如何理解分页3与干净的体系结构不兼容。
我试着做了以下几件事:https://coderoad.ru/51433106/kotlin-RecyclerView-%D0%BD%D1%83%D0%BC%D0%B5%D1%80%D0%B0%D1%86%D0%B8%D1%8F-%D1%81%D1%82%D1%80%D0%B0%D0%BD%D0%B8%D1%86但是失败了。
还有以下内容:
fun pagination(viewModel: EverythingViewModel): RecyclerView.OnScrollListener {
return object : RecyclerView.OnScrollListener() {
override fun onScrolled(recyclerView: RecyclerView, dx: Int, dy: Int) {
super.onScrolled(recyclerView, dx, dy)
if (dy > 0) {
val layoutManager = recyclerView.layoutManager as LinearLayoutManager
val firstVisibleItemPosition = layoutManager.findFirstVisibleItemPosition()
val visibleItemCount = layoutManager.childCount
val totalItemCount = layoutManager.itemCount
if (visibleItemCount + firstVisibleItemPosition >= totalItemCount) {
viewModel.page++
viewModel.getEverything()
}
}
}
}
}
也失败了
如果你需要更多的细节写我在评论
1条答案
按热度按时间xsuvu9jc1#
这里是https://medium.com/@anitaa_1990/pagination-in-recyclerview-without-paging-library-1c48e9328f81的原始文章。基本上,作者使用custon onScrollListener,但我更新了代码以避免一些bug。
请注意,如果你在片段中使用它,你应该创建onAttach示例(解决了我的导航错误)。您可以正确地定义一个函数来获取视图模型中的值。然后在你的片段中订阅livedata。