Как передать аргументы для промежуточных пунктов назначения, которые воссоздаются для заднего стека при запуске глубокой ссылки с компонентом навигации? - PullRequest
1 голос
/ 12 марта 2019

Глубокая ссылка через компонент навигации работает отлично, когда в заднем стеке есть только один пункт назначения, и для него не нужно создавать какие-либо данные.

Однако это очень распространенная ситуация, как показано ниже enter image description here и мне не ясно, как передать необходимые аргументы для пункта назначения B и пункта назначения A, при этом воссоздавая их в заднем стеке.

При создании PendingIntent мы устанавливаем пункт назначения C ипередать аргументы C для этого места назначения специально.Но я не вижу способа передать данные в пункты назначения B и A. Хотя у меня есть эти данные на момент создания глубокой связи.

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

Кроме того, я знаю,что эту проблему можно решить с помощью общего ViewModel и т. д., но я надеюсь, что мне все еще что-то не хватает, и это можно решить самим API компонента.

1 Ответ

0 голосов
/ 27 марта 2019

Решение было довольно простым.Все аргументы уже есть.

Простой вызов getArguments() из любого интересующего фрагмента делает свое дело.

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

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