OnDestinationChangeListener не работает для назначений активности

#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, который отвечает за замену назначений по мере необходимости. В приложении с несколькими назначениями активности каждое действие имеет свой собственный график навигации.

Итак, на данный момент я думаю, что вы должны отслеживать свои действия самостоятельно. 🙁 Графики навигации, похоже, «инкапсулированы» ровно в одно действие.