使用recyclerview列出分页

问题描述 投票:0回答:1

美好的一天,我需要帮助来实现我的回收视图的分页,重点是,如果我向下滚动并到达列表的末尾,那么一切都会正常工作,但是如果在第一个这样的滚动之后我向上滚动到列表的开头列表,然后列表将再次更新,尽管不应该,这是我需要避免的行为,我尝试了很多方法来做到这一点,但没有一个帮助我,告诉我我缺少什么,我将不胜感激任何帮助在这个简单的事情上。这是我的代码

binding.rvNewList.addOnScrollListener(
          object : RecyclerView.OnScrollListener() {
              override fun onScrollStateChanged(recyclerView: RecyclerView, newState: Int) {
                  super.onScrollStateChanged(recyclerView, newState)

                  if (!viewModel.isSearchMode) {
                      if (!recyclerView.canScrollVertically(1)
                          && newState == RecyclerView.SCROLL_STATE_IDLE
                      ) {
                          val listSizeAfterLoading = recyclerView.layoutManager!!.itemCount
                          if (currentListSize != listSizeAfterLoading) {
                              currentListSize = listSizeAfterLoading
                              viewLifecycleOwner.lifecycleScope.launch(Dispatchers.IO) {
                                  //update list
                              }
                              binding.progressBar.visibility = View.VISIBLE
                          } else {
                              binding.progressBar.visibility = View.GONE
                          }
                      }
                  }
              }
          }
      )
android kotlin android-recyclerview
1个回答
0
投票

通常,使用“现有工具”而不是重新发明它们是个好主意。但由于您更喜欢自己实现它,所以看起来您需要知道列表中的当前位置。 假设您已将

RecyclerView

配置为

LinearLayoutManager
,您可以尝试以下操作:
val layoutManager = recyclerView.layoutManager as LinearLayoutManager
val itemPosition = layoutManager.findFirstVisibleItemPosition()

如果为 0,则表明您位于列表顶部。

© www.soinside.com 2019 - 2024. All rights reserved.