Я использую компонент навигации Android в своем демонстрационном приложении. У меня довольно простой случай. Одно действие, два фрагмента, A и B. Я настроил элементы управления навигацией, как в примере приложения от Google. И когда я пытаюсь открыть фрагмент B из A с помощью простого onClickListener, например:
val button.setOnClickListener {
val action = AFragmentDirections.openFragmentB()
findNavController().navigate(action)
}
Все нормально работает. Фрагмент B открывается, и при нажатии на кнопку «Назад» он всплывает. Но когда я пытаюсь использовать его из наблюдателя LiveData, например:
viewModel.openFragmentB.observe(viewLifecycleOwner, Observer {
val action = AFragmentDirections.openFragmentB()
findNavController().navigate(action)
})
Фрагмент B открывается, но при нажатии на кнопку «Назад» приложение вылетает с ошибкой назначения навигации com.myapp: id / open_fragmetn_b неизвестен этому NavController.
Почему это происходит и как использовать компонент навигации с LiveData?