Обработка кнопки возврата с помощью Android Navigation с двумя графиками навигации

Я создал небольшой пример приложения для тестирования библиотеки навигации Android. Общая идея заключается в том, что мне нужны две вкладки с собственным графом навигации.

Мой основной макет деятельности содержит BottomNavigationView с двумя NavHosts.

ButtonNavigationView слушатель щелчка заботится о показе одного NavHost или другой, а также вызов NavigationUI.setupActionBarWithNavController с выбранным контроллером для обновления панели инструментов соответственно. Навигация вверх работает нормально.

Проблема, с которой я сейчас сталкиваюсь, это кнопка возврата.

Есть собственность app:defaultNavHost="true" который гарантирует, что ваш NavHostFragment перехватывает кнопку возврата системы, но я хочу, чтобы она была вкл / выкл в зависимости от активного графика. Я не мог найти способ изменить это:(

Я знаю, что могу переопределить onBackPressed() но я пытаюсь найти способ, чтобы библиотека выполняла эту работу за меня, давая понять, какой график активен.

1 ответ

Решение

Согласно источнику NavHostFragment, все это app:defaultNavHost="true" Делает, вызывает через setPrimaryNavigationFragment (), как FragmentManager знает, какому дочернему фрагменту отправлять события кнопки назад.

Поэтому при переходе на новый фрагмент вы можете добавить setPrimaryNavigationFragment() к вашей FragmentTransaction, чтобы получить то же поведение.

Другие вопросы по тегам