不要使用 Android 导航组件在后台堆栈中包含片段

Do not include fragment in backstack using Android Navigation Component

我正在开发一款用户可以创建活动的应用程序。我想这样做,以便在他们创建事件之后,后退按钮不会将他们带到创建流程,而是带到创建流程之前的屏幕。类似于:

主屏幕 -> 创建流程 -> 事件摘要

然后,如果他们按下后退按钮,我希望它继续

活动摘要(后退按钮)主屏幕

我已经接近:

<fragment
    android:id="@+id/createMeetFragment"
    android:name=".CreateMeetFragment"
    android:label="CreateMeetFragment" >
    <action
        android:id="@+id/action_createMeetFragment_to_meet_detail_graph"
        app:destination="@id/meet_detail_graph"
        app:popUpTo="@+id/mainFragment" />
</fragment>

这很好用,因为它会弹出到主屏幕。我还没有找到很多关于这些流行行为选项的文档 this

我对这个解决方案的问题是,据我所知,它会弹出,直到我们到达主屏幕,无论用户如何创建事件。我更喜欢在创建流程之前弹出屏幕的解决方案,允许创建流程的多个入口点。

I'd prefer a solution that just pops to the screen before the creation flow, allowing for multiple entry points to the creation flow.

您不应弹出到主屏幕,而应弹出到 创建流程的第一个屏幕

<fragment
    android:id="@+id/createMeetFragment"
    android:name=".CreateMeetFragment"
    android:label="CreateMeetFragment" >
    <action
        android:id="@+id/action_createMeetFragment_to_meet_detail_graph"
        app:destination="@id/meet_detail_graph"
        app:popUpTo="@+id/firstCreateFlowFragment" 
        app:popUpToInclusive="true" />
</fragment>