Предположим, у нас есть 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", но безуспешно. Любые советы?