Comments 7
Появился вопрос. Cicerone предлагает более абстрактное решение и не привязывается к FragmentManager'у. А есть ли возможность в решении от Google переопределить механизм транзакций для каждого события? Например, если мы используем не фрагменты, а контроллеры из кондуктора?
Как показывает практика: апи библиотек гугла обычно негибкие и мало поддаются кастомизации.
Прямого пути для решения подобной задачи я не вижу, но мы же сами вызываем из кода переход с конретным ID, поэтому теоретически можно вместо вызова перехода на NavController'е, вызывать его на собственной навигации, предварительно узнав параметры перехода, заданные в xml графе.
Но все это ради UI графа с не очень богатым фукционалом?
Может быть тогда проще написать свой плагин для Андроид Студии, который будет отображать xml с настройкой переходов в виде UI-графа, а потом позволять использовать эти параметры как угодно? А это идея!
Хочу отметить, что навигация в данном случае рассматривается в пределах одного Activity, такой подход я практикую уже не на первом проекте, и он себя отлично показал (обсуждение этого подхода — не цель данной статьи).
Подскажите, а есть где описан такой подход? Очень интересует
У меня происходит сложность с работой кнопки
Back
, и я даже не понимаю, по какой причине.
single Activity, домашний фрагмент в нем — Фрагмент А. ВMainActivity
я определяю контроллер:
navController = Navigation.findNavController(this, R.id.mainContainer)
По нажатию на кнопку в этом фрагменте происходит следующее:
Navigation.findNavController(this.requireView()).navigate(R.id.checkingView)
Так как в разметке контейнера стоит
defaultNavHost="true"
, то по логике при нажатии на кнопкуBack
я должен снова вернутся на фрагмент А, но этого не происходит.
Может сталкивались с таким?
Как думаете, стоит ли делать (и можно ли) синглтоном Контроллер, создавая его инстанс в
DI
?
Navigation Architecture Component. Практический взгляд