我目前在我的项目中使用 Android 导航架构。它具有可以使用快捷方式启动任何 fragment 的功能。目前我正在使用 NavController 在单击快捷方式时导航到所需的目的地。
但是当我多次单击快捷方式时,每次都会创建一个新的 fragment 实例。
所以,我的问题是,有没有办法在使用 NavController 导航到 fragment 时只接受一个 fragment 实例?
我在谷歌上搜索了很多次,但一无所获。提前致谢。
最佳答案
您可以使用 by navGraphViewModels
代表
最重要的是为您的 View 设置 id 以便在配置更改期间保存状态。这在官方文档中没有提到。
默认情况下,在配置更改(旋转和...)期间不会保存 fragment 导航。
ViewModel 将在配置更改后保持不变,您可以在那里保存状态然后恢复它。
还要检查这些链接:
https://code.luasoftware.com/tutorials/android/android-jetpack-navigation-lost-state-after-navigation/
和
Android navigation component: how save fragment state
关于android - 使用 NavController 导航时只允许一个实例,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55247986/