Android导航组件在片段之间保存状态

时间:2019-07-11 19:18:53

标签: android

Android导航组件,在片段之间保持状态或保存状态

我正在使用android导航组件,其中所有片段都驻留在单个活动中。我通过动作(例如fragmentAtofragmentB,fragmentBtofragmentC等)在片段之间移动,由于每次都会重新创建此片段,并且其状态无法保存,因此用户在片段之间移动时,我是否保留用户数据?

在下面的链接中引用,但效果不佳 Android navigation component: how save fragment state

此外,我可以将数据保存在Fragments onDestroy(Sharedpreference或sqlite)中,并在onResume中进行设置,但这看起来并不正确。

1 个答案:

答案 0 :(得分:-1)

您可以在Activity中创建一个sharedViewModel,然后在片段中使用它。我使用Koin link是因为它可以节省您的时间,而且很简单。当您切换片段时,ViewModel不会被清除,它将保持不变。

我的活动中有

private val settingsViewModel by viewModel<SettingsViewModel>()

您可以在Fragments中使用

private val settingsViewModel by sharedViewModel<SettingsViewModel>()