Android перемещается вверх по правильному графику при использовании NavController - PullRequest
0 голосов
/ 20 марта 2019

В настоящее время я использую архитектуру навигации Android в своем проекте.Он имеет функцию, которая может запускать любой фрагмент с помощью ярлыка.Предположим, мой график навигации выглядит так: A-> B-> C-> D.Когда я нахожусь во фрагменте A, я непосредственно перехожу к фрагменту D с помощью NavController.navigate (R.id.fragment_d).Но когда я нажимаю кнопку «Назад», он возвращается к фрагменту А. Можно ли как-то разрешить пункту назначения вернуться к своему родителю на графике навигации?(Я имею в виду, в этом случае D обратно в C, B, затем обратно в A).Заранее спасибо.

1 Ответ

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

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

Однако вы можете подойти к этому одним из двух способов:

  1. Если вы согласны со сбросом состояния на A, вы можете использовать NavDeepLinkBuilder для создания набора Интентов, подходящих для перезапуска задачи в выбранном месте назначения:

    navController.createDeepLink()
      .setDestination(R.id.destination_d)
      .createTaskStackBuilder()
      .startActivites()
    
  2. Просто позвоните navigate() несколько раз.

    navController.navigate(R.id.destination_b)
    navController.navigate(R.id.destination_c)
    navController.navigate(R.id.destination_d)
    
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...