Это моя первая попытка использования компонента навигации AndroidX, и я не могу найти ответ для этого сценария.У меня есть 2 вида деятельности: MainActivity
и ShellActivity
.MainActivity
имеет панель навигации и настраиваемую панель инструментов (windowActionBar=false
) и будет содержать некоторые фрагменты верхнего уровня.ShellActivity
использует стандартную панель инструментов (windowActionBar=true
) и будет содержать некоторые фрагменты более низкого уровня, такие как настройки, и некоторое содержимое типа detail .
Как настроить график навигации для выше иКак мне перейти от MainActivity/Fragment1
к ShellActivity/FragmentB
?
Нужно ли просто настроить каждое действие как независимый граф и вызвать его с параметрами для загрузки желаемого фрагмента или есть собственно способ сделать это?
Почему действия настроены таким образом?
Поскольку фрагменты верхнего уровня могут перемещаться вперед и назад непосредственно через навигационную панель, тогда как низкиефрагменты уровня детализации не должны иметь доступа к блоку навигации (они являются вторичными пунктами назначения и не имеют смысла без фрагмента верхнего уровня, который ведет к ним).ShellActivity
также имеет setDisplayHomeAsUpEnabled=true
, что может противоречить работе ящика навигации.
Обновление
- Настройка
ShellActivity
как его собственногоГрафик невозможен, поскольку нет начального пункта назначения. - Я также пытался переключать между панелью навигации и
setDisplayHomeAsUp
, но как только я включил setDisplayHomeAsUp
, стрелка назадщелчки не вызывают никаких обратных вызовов.