#android #android-architecture-navigation
#Android #android-архитектура-навигация
Вопрос:
Я прикрепляю OnDestinationChangedListener
к своему NavController
в своей активности.
Он отлично работает для всех назначений фрагмента. Однако, когда я перехожу к назначению активности, мой слушатель не уведомляется об изменении.
override fun onStart() {
super.onStart()
navFragment.findNavController().addOnDestinationChangedListener { controller, destination, arguments ->
Log.e("Navigation", "id: ${destination.id} label: ${destination.label}")
}
}
Как я могу прослушать изменения назначения и для назначений активности?
Ответ №1:
В документации говорится, что:
Навигационный компонент предназначен для приложений, которые имеют одно основное действие с несколькими назначениями фрагментов. Основное действие связано с навигационным графиком и содержит NavHostFragment, который отвечает за замену назначений по мере необходимости. В приложении с несколькими назначениями активности каждое действие имеет свой собственный график навигации.
Итак, на данный момент я думаю, что вы должны отслеживать свои действия самостоятельно. 🙁 Графики навигации, похоже, «инкапсулированы» ровно в одно действие.