Я использую NavController: Navigation.findNavController(activity, R.id.statistic_host_fragment)
. И все ли хорошо, пока я не переверну свое устройство, и после этого я не могу navigate()
и popBackStack()
.
В журналах: FragmentNavigator: игнорирование вызова popBackStack(): FragmentManager уже сохранил свое состояние И FragmentNavigator: игнорирование вызова navigation(): FragmentManager уже сохранил свое состояние
Когда я увидел Google Sample, они ничего не сказали об этой проблеме, там все работает нормально. Вот и не могу понять в чем проблема.
Также, когда я использую MVVM, я сохраняю navController в viewModel и после onCreate() повторно инициализирую контроллер в viewModel. Это решило проблему навигации() после поворота, но я все еще не могу использовать функцию popBackStack(). После этого я пытаюсь использовать Navigation.setViewNavController()
, но это не работает.
val destId = currentController.currentDestination?.id
if (destId != R.id.wikiFragment && destId != R.id.statisticsFragment && destId != R.id.trackerFragment)
currentController.navigateUp()
и в HomeActivity:
override fun onBackPressed() {
if (vm.currentController.graph.startDestination == vm.currentController.currentDestination?.id) {
super.onBackPressed()
} else {
vm.currentController.popBackStack()
}
}
и все источники: https://github.com/SuperCatDev/OverHub/tree/feature/maps