Поведение стопки фрагментов при изменении ориентации

У меня есть действие A, которое определяет androidx.fragment.app.FragmentContainerView с заданным navGraph в своем макете. Начальной точкой навигационного графа является фрагмент F1, у которого есть действие для перехода к фрагменту F2 (действие имеет только идентификатор и пункт назначения). Фрагмент F2 имеет действие с идентификатором и popupTo, который указывает идентификатор графа F1. Все это отлично работает, пока я не изменю ориентацию активности, перевернув устройство. После изменения ориентации, когда я выполняю действие F2, я получаю java.lang.IllegalStateException: no current navigation node Почему это происходит и как исправить?

ОБНОВЛЕНИЕ: ошибка компонентов навигации. Решение здесь: ‹androidx.fragment. app.FragmentContainerView ›vs ‹fragment› как представление для NavHost


person ror    schedule 25.11.2019    source источник


Ответы (1)


Это может быть связано с изменением состояния фрагмента после изменения ориентации. Вы можете использовать "setRetainInstance (true)" в onCreate () фрагментов, чтобы сохранить их состояние при изменении ориентации.

person Satyam Kamboj    schedule 04.12.2019
comment
Я не менял ориентацию, но даже если бы я и сделал, сохранение экземпляра больше похоже на обходной путь, чем на решение. - person ror; 04.12.2019
comment
Но вы сказали выше, что вы меняете ориентацию своей деятельности, переворачивая устройство, после чего оно показывает вам исключение. Убедитесь, что вы просили, а что нет. - person Satyam Kamboj; 04.12.2019
comment
Извини прошу прощения - person ror; 04.12.2019