У меня есть одно приложение, которое использует Навигационный компонент Android для навигации. Когда пользователь запускает мое приложение, я хочу показать фрагмент приветствия, который позволяет ему выбрать, как он хотел бы работать сегодня (он может выбрать рабочий процесс A или рабочий процесс B).
Как только пользователь выбирает один из вариантов, он переходит к фрагменту «Выполнить работу», который позволяет ему начать работу. Если в этот момент они нажмут кнопку «Назад», я хочу закрыть приложение, а не переходить обратно к фрагменту приветствия (фрагмент приветствия отображается только при запуске приложения).
Способ настройки графика навигации было установить Фрагмент приветствия в качестве начального пункта назначения и Фрагмент Do Work в качестве другого пункта назначения на том же графике.
Когда приложение запускается, мой фрагмент приветствия отображается так, как нужно, однако, похоже, нет удобного способа запустить фрагмент «Выполнить работу» из фрагмента приветствия и вытолкнуть фрагмент приветствия из заднего стека так, что к нему нельзя перейти снова без фактического уничтожения и перезапуска приложения.
Я остановился на фрагменте приветствия, вызвав findNavController.popBackStack () и затем findNavController (). navigate ( R.id.do_work_fragment). Это, кажется, имеет желаемое поведение, однако кажется действительно странным, что приходится «вручную» вставлять задний стек. Сначала я предполагал, что это никогда не сработает, так как я полагал, что выталкивание заднего стека с одним элементом вызовет закрытие приложения, но, похоже, оно работает просто отлично.
Я переосмыслил это, и мое решение просто отлично или есть лучший способ решить этот сценарий навигации с помощью Android Компонентов навигации?