Android Навигация - после перехода по внутренней ссылке на второй фрагмент откройте первый фрагмент в том же графике, но из другого графика навигации - PullRequest
1 голос
/ 10 марта 2020

В моей навигации, у меня есть что-то вроде этого:

Navigation graph mock image

  1. Когда я открываю регистрационный фрагмент (в entry_graph) с глубокой ссылки и заканчиваю sh регистрация, я перешел к main_graph (MainFragment).
  2. Оттуда я могу получить доступ к menuFragment и щелкнуть logOut, который вызывает:

    MainFragmentDirections.actionMainFragmentToEntryFragment()

  3. Открывается регистрационный фрагмент вместо loginFragment. Я не ожидаю, что так как loginFragment является домашним фрагментом на этом графике.

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

Я искал решения для SO и веб, но не смог найти такую ​​же проблему нигде.

Я пытался удалить его вручную из бэк-стека и аналогичных решений, но у меня не получилось, он всегда открывает фрагмент, который был открыт глубокой связью в первую очередь.

Я используя навигационную версию 2.1.0, но проверил этот поток на последней версии 2.2.0, и он ведет себя так же.

Кто-нибудь знает, есть ли решение для этого навигационного потока?

1 Ответ

3 голосов
/ 10 марта 2020

Как перемещаться на шаге № 2? Я попробовал тот же поток, и он работал, когда я использовал код, описанный здесь .

В основном это код

PendingIntent pendingIntent = new NavDeepLinkBuilder(context)
.setGraph(R.navigation.nav_graph)
.setDestination(R.id.android)
.setArguments(args)
.createPendingIntent();

Как описано в do c, когда вы перемещаетесь с помощью намерения, бэк-стек сбрасывается и заполняется home фрагмент каждого предыдущего графика. Просто убедитесь, что требуемый бэк-стек действительно правильно описан в nav_graph xml - каждый домашний фрагмент открывает новый отступ.

Надеюсь, он работает для вас :)

...