popUpTo和popUpToInclusive无法正常工作的Android导航组件

时间:2020-10-10 11:46:56

标签: android android-fragments android-jetpack android-jetpack-navigation

我正在使用导航组件在片段之间导航。 A是startDestination,B是起始片段。从A我可以到达B,从B我可以到达C,D,E等。我向片段B添加了全局操作。由于开始目标是A,因此它在应用程序启动时启动。我正在使用全局操作来使B片段从A导航到B,但我不希望该片段在Backstack上,但是当我从B按下时A会出现。

这是对B采取的全球行动:

<action
    android:id="@+id/action_global_to_B"
    app:destination="@id/B"
    app:popUpTo="@id/B"
    app:popUpToInclusive="true"/>

所以您可以看到我对全局操作都做了popUpTo和popUpToInclusive。但是我仍然看到片段A仍在堆栈中。

然后我尝试了这个:

<fragment
android:id="@+id/A"
android:name="com.xx.A"
android:label="A" >
<action
    android:id="@+id/action_A_to_B"
    app:destination="@id/B"
    app:popUpTo="@id/B"
    app:popUpToInclusive="true"/>
</fragment>

还是同样的问题。

1 个答案:

答案 0 :(得分:0)

这样做:

<fragment android:id="@+id/A"
          android:name="com.xx.A"
          android:label="A">
    <action
        android:id="@+id/action_A_to_B"
        app:destination="@id/B"
        app:popUpTo="@id/A"
        app:popUpToInclusive="true"/>
</fragment>