Как очистить стек от контроллера навигации - PullRequest
0 голосов
/ 19 июня 2020

Если у меня есть 4 фрагмента (A, B, C и D) и я двигаюсь слева направо до конца D, я хочу очистить стек до A.

поэтому при использовании граф навигации, он может быть в действии фрагмента C, например:

<action
  android:id="@+id/c"
  app:destination="@+id/d"
  app:popUpTo="@id/a"
  app:popUpToInclusive="true" />

, но когда я это делаю, фрагмент c не удаляется из бэкстека. Это означает, что когда я нажимаю кнопку "backpress from d", приходит c, а затем a. Как мне решить эту проблему?

1 Ответ

0 голосов
/ 19 июня 2020

Чтобы достичь A->B->C->D, а затем, нажав назад, вернитесь к A:

Определите в своей навигации:

   <fragment
        android:id="@+id/c"
        ...>

        <action
            android:id="@+id/action_c_to_d"
            app:destination="@id/d"
            app:popUpTo="@+id/b"
            app:popUpToInclusive="true"/>

    </fragment>

И используйте:

findNavController().navigate(R.id.action_c_to_d)
...