android - 在应用程序关闭之前,在片段中保存 recyclerview 的实例状态的最佳方法是什么?
问题描述
我使用 ViewModel 来保存 RecyclcerView 的状态,当我导航到 BottomNavigation 中的另一个片段时它可以工作。但是当我打算进行另一个活动然后返回时,它不会保存任何东西。这是我的代码 ViewModel
class DashboardViewModel : ViewModel() {
var listStateDashBoard: Parcelable? = null
}
onDestroy 我保存实例状态
override fun onDestroyView() {
super.onDestroyView()
viewModel.listStateDashBoard = rvDashBoard.layoutManager?.onSaveInstanceState()
}
并在 ViewCreated 时获取
override fun onViewCreated(view: View, savedInstanceState: Bundle?) {
super.onViewCreated(view, savedInstanceState)
//val chatAdapter = DashBoardAdapter(itemDashBoardModels = itemChatModels)
//rvDashBoard.layoutManager = LinearLayoutManager(this.context)
//rvDashBoard.adapter = chatAdapter
if (viewModel.listStateDashBoard != null){
rvDashBoard.layoutManager?.onRestoreInstanceState(viewModel.listStateDashBoard)
viewModel.listStateDashBoard = null
}
}
请帮助我,祝大家有美好的一天!
解决方案
推荐阅读
- sql - 通过使用 max() 将 SQL 插入到另一个带有组的表迁移中
- c# - 对 ObservableCollection 排序
按类型 - java - 缺少 1 次调用以... in
- typescript - TypeScript 推断元组返回类型
- node.js - Node.js aws Lambda SQS 函数未触发
- javascript - 从 Web 抓取数据后,编写 Blocking Js 代码以写入 = csv 文件(使用 csv-parser)
- python - SQLAlchemy 等效于 MSSQL 查询 DATEADD(day, -1, GETDATE())
- reactjs - 修改 antd Select 组件
- android - Android 创建一个点击其他应用程序的应用程序
- html - 如何使用 Angular 9 在对话框中显示特定的行数据?