Глубокие ссылки в библиотеке навигации Android: как синтезировать backstack - PullRequest
0 голосов
/ 15 мая 2018

Используя Компонент навигации Android Architecture , у меня есть следующий график навигации

-> [Home] -> [Articles List] -> [Specific Article]

У меня также есть глубокая ссылка на [Specific Article].Когда он открыт, навигация вверх в настоящее время переходит к [Home].

Я хотел бы синтезировать бэкстек так, чтобы вместо этого навигация вверх возвращалась к [Articles List] (а затем к [Home] при повторной навигации).

Какой способ навигации это сделать?

Ответы [ 2 ]

0 голосов
/ 16 мая 2018

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

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

Кроме того, ответ ianhanniballake не дает ожидаемых результатов (фрагмент с внутренней ссылкой не открыт).

Я создалпроблема на трекере Google для обеих этих проблем: https://issuetracker.google.com/issues/79734195

0 голосов
/ 15 мая 2018

Согласно документации NavDeepLinkBuilder , Navigation использует startDestination пункта назначения для синтетического заднего стека.Если вы группируете места назначения во вложенный граф навигации , то и startDestination вложенного графа и startDestination корневого графа добавляются в задний стек.Это дает вам возможность иметь [Articles List] в качестве startDestination вложенного графа, чтобы добавить его в свой задний стек.

Однако , настоятельно рекомендуется сохранить синтетический обратностек настолько мал, насколько это возможно - хотя глубина 2 или 3 (как здесь) в порядке, не рекомендуется выходить за рамки этого уровня, чтобы избежать случаев, когда пользователям приходится многократно нажимать и нажимать кнопку «назад», чтобы вернуться к панели запуска.

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