Обработка кнопки возврата с помощью Android Navigation с двумя графиками навигации
Я создал небольшой пример приложения для тестирования библиотеки навигации Android. Общая идея заключается в том, что мне нужны две вкладки с собственным графом навигации.
Мой основной макет деятельности содержит BottomNavigationView
с двумя NavHost
s.
ButtonNavigationView
слушатель щелчка заботится о показе одного NavHost
или другой, а также вызов NavigationUI.setupActionBarWithNavController
с выбранным контроллером для обновления панели инструментов соответственно. Навигация вверх работает нормально.
Проблема, с которой я сейчас сталкиваюсь, это кнопка возврата.
Есть собственность app:defaultNavHost="true"
который гарантирует, что ваш NavHostFragment
перехватывает кнопку возврата системы, но я хочу, чтобы она была вкл / выкл в зависимости от активного графика. Я не мог найти способ изменить это:(
Я знаю, что могу переопределить onBackPressed()
но я пытаюсь найти способ, чтобы библиотека выполняла эту работу за меня, давая понять, какой график активен.
1 ответ
Согласно источнику NavHostFragment, все это app:defaultNavHost="true"
Делает, вызывает через setPrimaryNavigationFragment (), как FragmentManager знает, какому дочернему фрагменту отправлять события кнопки назад.
Поэтому при переходе на новый фрагмент вы можете добавить setPrimaryNavigationFragment()
к вашей FragmentTransaction, чтобы получить то же поведение.