小编all*_*mex的帖子

如何告诉RecyclerView从特定位置开始

我希望带有LinearLayoutManager的RecyclerView在适配器更新后显示在特定项目上的滚动位置。(不是第一个/最后一个位置)是指第一个(重新)布局,此给定位置应位于可见区域。它不应以位置0在顶部进行布局,然后再滚动到目标位置。

我的适配器从itemCount = 0开始,将其数据加载到线程中,并在以后通知其实际计数。但是起始位置必须在count仍为0时已经设置好!

到目前为止,我使用了某种post Runnable包含方式,scrollToPosition但是它有副作用(从第一个pos开始,立即跳转到目标位置(0->目标),似乎不能与DiffUtil(0-> target-> 0)配合使用)

编辑:要澄清:我需要替代layoutManager.setStackFromEnd(true);,例如setStackFrom(position)。ScrollToPosition不起作用,如果我在itemCount仍为0时调用它,则它将被忽略。如果我在通知itemCount现在> 0时调用它,它将从0开始布局,并在跳转到目标位置后不久跳转。如果我使用DiffUtil.DiffResult.dispatchUpdatesTo(adapter)`,它将完全失败。(从0开始显示,然后滚动到目标位置,然后再次回到位置0)

android position android-recyclerview

5
推荐指数
2
解决办法
4629
查看次数

标签 统计

android ×1

android-recyclerview ×1

position ×1