android - 如何在jetpack-navigation中保存状态列表
问题描述
我使用 jetpack-navigation 设计了一个应用程序当我从一个片段移动到另一个片段时,出现如下图所示的问题,列表的状态消失了。
事实上,当从一个布局返回时,文章将在堆栈中重新创建,并且不会保存列表状态,用户将不得不再次滚动。请帮我?
解决方案
每次导航操作都会重新创建片段。您可以将滚动位置存储在您的活动中并从那里加载它。但是这样做,滚动位置将在活动重新创建(例如旋转设备)时丢失。
更好的方法是将其存储在 ViewModel 中。(见https://developer.android.com/topic/libraries/architecture/viewmodel)
视图模型在活动娱乐中幸存下来,您可以存储滚动位置。
然后你可以加载这个位置并告诉列表滚动到这个位置(例如,通过调用 scrollToPositionWithOffset(...) 来调用带有 LinearLayoutManager 的 RecyclerView)
推荐阅读
- php - How to split array into all possible combinations
- git - 将提交从一个分支移动到 GitHub 中的另一个分支?
- javascript - 如何将标签添加到谷歌地图标记?(错误:InvalidValueError:setLabel:不是字符串;并且没有文本属性)
- java - 反转具有多个值的行
- javascript - React 将项目添加到列表中
- c# - 数据可视化图表轴动态位置
- python - 将一组标头添加到现有数据帧
- c# - DataGrgid DataRowTemplate 中的当前上下文中不存在 TextBox
- php - 如何对mysql数据进行排序并找到位置?
- crystal-reports - Crystal Report如何删除带有“字符串”的行