Обработка кнопки возврата с помощью Android Navigation с двумя графиками навигации - PullRequest
0 голосов
/ 18 января 2019

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

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

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

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

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

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

1 Ответ

0 голосов
/ 18 января 2019

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

Следовательно, при переключении на новый фрагмент вы можете добавить setPrimaryNavigationFragment() к вашей транзакции фрагмента, чтобы получить то же поведение.

...