代码之家  ›  专栏  ›  技术社区  ›  azizbekian

执行Fragment replace()后恢复RecyclerView的滚动位置

  •  0
  • azizbekian  · 技术社区  · 6 年前

    我有一个包含两个片段的简单活动:main(包含一个项目列表)和detail。详细信息屏幕是一个片段,在主列表中单击某个项目时显示。 DetailFragment replace() .

    从详细屏幕导航回来后,我想有一个完全相同的滚动位置 RecyclerView

    只要 替换() 发起人 onDestroyView() onCreateView() 循环发生 MainFragment ,从学校回来后 细节片段 回收视图 它和离开前的那个没有联系 细节片段 .

    替换() 这是一个碎片 启动 onSaveInstanceState() here 不适用。

    我当然可以把这个职位保留下来

    一个答案,将建议使用 add() 替换()

    2 回复  |  直到 6 年前
        1
  •  0
  •   azizbekian    5 年前

    我经历过 RecyclerView 被宣布为 NestedScrollView . 这就是问题所在。

    嵌套滚动视图 一切都是自动处理的。

        2
  •  -1
  •   Pradeep Kumar    6 年前

    作为 onSaveInstanceState() ViewModel

    当您声明适配器并将其设置为第一个recyclerview时,请尝试通过适配器实例回调活动,在活动中您可以尝试保存 adapter instance or any required data 你的活动。

    一旦从详细信息片段返回,就可以从活动的ViewModel获取reycycler数据的保存实例。