首页 > 解决方案 > 在应用程序关闭之前,在片段中保存 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
        }
    }

请帮助我,祝大家有美好的一天!

标签: androidkotlinandroid-recyclerview

解决方案


推荐阅读