Android导航组件,在片段之间保持状态或保存状态
我正在使用android导航组件,其中所有片段都驻留在单个活动中。我通过动作(例如fragmentAtofragmentB,fragmentBtofragmentC等)在片段之间移动,由于每次都会重新创建此片段,并且其状态无法保存,因此用户在片段之间移动时,我是否保留用户数据?
在下面的链接中引用,但效果不佳 Android navigation component: how save fragment state
此外,我可以将数据保存在Fragments onDestroy(Sharedpreference或sqlite)中,并在onResume中进行设置,但这看起来并不正确。
答案 0 :(得分:-1)
您可以在Activity中创建一个sharedViewModel
,然后在片段中使用它。我使用Koin link是因为它可以节省您的时间,而且很简单。当您切换片段时,ViewModel不会被清除,它将保持不变。
我的活动中有
private val settingsViewModel by viewModel<SettingsViewModel>()
您可以在Fragments中使用
private val settingsViewModel by sharedViewModel<SettingsViewModel>()