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

Rya*_*n C 4 android android-fragments android-navigation android-architecture-navigation

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

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

然后如果他们按下后退按钮我希望它去

事件摘要(后退按钮)主屏幕

我已经接近:

<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>
Run Code Online (Sandbox Code Playgroud)

这很有效,因为它会弹出到主屏幕。我还没有发现太多的文档,这些弹出行为的选项只是这个

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

jay*_*917 6

我更喜欢在创建流程之前弹出屏幕的解决方案,允许创建流程的多个入口点。

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

<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>
Run Code Online (Sandbox Code Playgroud)