Android导航组件-减少后退次数

时间:2020-02-11 13:52:31

标签: android kotlin navigation androidx

让我们假设我们有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或从b导航到c时,导航堆栈都会增加。 我想实现以下行为,而不是在按下后退按钮时循环遍历整个后退堆栈:

A-> B-> C-> B-> C-> B-> C-> 按下后退按钮-> B 按下后退按钮-> A

分别是A-> C-> B-> C-> B-> C-> B 按了后退按钮-> C 按了后退按钮-> A < / p>

我已经玩过“ popUpTo”和“ popUpToInclusive”,但没有成功。 有提示吗?

0 个答案:

没有答案