Android компонент навигации - уменьшить backstack - PullRequest
0 голосов
/ 11 февраля 2020

Предположим, у нас есть 3 фрагмента: A, B и C. Начальная точка - A. Оттуда можно перейти к B или C. Затем вы можете перейти от B к C и наоборот. Примерно так:

A -> B -> C -> B -> C или A -> C -> B -> C

    <fragment
        android:id="@+id/a">
        <action
            android:id="@+id/a_to_b"
            app:destination="@id/b" />
        <action
            android:id="@+id/a_to_c"
            app:destination="@id/c" />
    </fragment>
    <fragment
        android:id="@+id/b">
        <action
            android:id="@+id/b_to_c"
            app:destination="@id/c" />
    </fragment>
    <fragment
        android:id="@+id/c">
        <action
            android:id="@+id/c_to_b"
            app:destination="@id/b" />
    </fragment>

Навигация выполняется с помощью

Navigation.findNavController(this).navigate(R.id.b_to_c)

. Очевидно, что каждый раз, когда вы переходите от b к c или наоборот, обратный стек навигации будет расти. Вместо циклического повторения всего обратного стека при нажатии кнопки «назад» я хочу добиться следующего поведения:

A -> B -> C -> B -> C -> B -> C -> НАЗАД НАЗАД НА КНОПКУ -> B НАЖМИТЕ НА КНОПКУ НАЗАД -> A

соответственно A -> C -> B -> C - > B -> C -> B НАЗАД КНОПКИ НАЗАД -> C НАЖАТЬ КНОПКУ НАЗАД -> A

Я уже поигрался с "popUpTo" и "popUpToInclusive", но безуспешно. Любые советы?

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