Используйте навигацию Jetpack, чтобы отобразить стрелку назад на панели действий - PullRequest
0 голосов
/ 20 июня 2019

У меня есть настройка графика навигации Jetpack с нижней навигацией и панелью действий.Нижняя навигация имеет 3 вкладки.1 из этих вкладок содержит подробный фрагмент, который я хотел бы отобразить стрелкой назад на панели действий.

В MainActivity onCreate(), я добавил:

supportActionBar?.setDisplayHomeAsUpEnabled(true)

На каждой вкладке и фрагменте отображается кнопка «Назад».

Как запретить отображение кнопки «Назад», если пользователь не перешел к фрагменту не верхнего уровня? Существует лиметод, который определяет, когда произошла конкретная навигация?Если это так, я предполагаю, что могу сделать что-то вроде supportActionBar?.setDisplayHomeAsUpEnabled(false)

Кроме того, есть ли способ отобразить пользовательскую стрелку назад на дочерних страницах?Стрелка по умолчанию не соответствует пользовательскому интерфейсу.

Рад предоставить больше подробностей, если это необходимо.

1 Ответ

2 голосов
/ 20 июня 2019

Вы можете использовать комбинацию setupWithNavController(BottomNavigationView,NavController) и setupActionBarWithNavController(AppCompatActivity,NavController,AppBarConfiguration) из NavigationUI.Первая привязывает нижнюю навигацию к контроллеру навигации, вторая устанавливает панель действий поддержки для учета навигации.

С помощью AppBarConfiguration.getTopLevelDestinations() вы сможете настроить, когдадля отображения стрелки назад.По умолчанию корень навигационной диаграммы рассматривается только как пункт назначения верхнего уровня, но вы также можете использовать другой компоновщик для определения набора пунктов назначения верхнего уровня.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...