【问题标题】:RecyclerView deleting item doesn't call OnScrollListenerRecyclerView 删除项目不调用 OnScrollListener
【发布时间】:2015-08-30 06:23:39
【问题描述】:

似乎有很多关于如何向上滚动以获取更多帖子的帖子,我之前已经发布过一个问题:Adding items to Endless Scroll RecyclerView with ProgressBar at bottom

但是,我有一个关于删除 recyclerview 列表中的项目的问题。 您有一个 android 应用程序,它从页面中的数据库服务器获取 5 个项目。 一旦它获取它,您就开始一个一个地删除项目。

列表 recyclerview 向上滚动,但 OnScrollListener 未被调用,因为您还没有真正“滚动”。

当我想在我的列表中添加更多项目时,我该如何解决这个问题,因为我的删除开始从顶部删除项目?

【问题讨论】:

  • 当您保存多少项目被删除并且达到特定计数时您获取新项目并重置计数器怎么办?这会是一个解决方案吗?
  • 我不确定,因为 scrollListener 似乎会跟踪当前页面。最简单的方法是“模拟”对 scrollListener 的调用,但不知道该怎么做。
  • 调用mRecyclerView.scrollBy(0,0); 将导致调用onScrollChanged() 并且RecyclerView 将失效。
  • @Simon 你能找到解决办法吗?
  • 我很久以前就发布了这个问题......但我想你可以建立逻辑,当屏幕上的项目为 5 或更少并且你想删除一个项目时,你可以调用用于下载下一页项目的 api,以便在删除发生之前增加列表。这样你总是有更多的项目向下滚动并触发 onscrolllistener。

标签: android adapter android-recyclerview infinite-scroll onscrolllistener


【解决方案1】:

删除每个项目时调用

recyclerView.smoothScrollToPosition(0); 

效果很好

【讨论】:

  • 这不是一个解决方案。比如说,我有 150 个项目并在位置 130 处删除,为什么要滚动到位置 0?
  • 0 只是一个例子,它是元素的位置
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2019-09-22
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-06-27
  • 1970-01-01
  • 2020-09-25
相关资源
最近更新 更多