不要使用Android Navigation Component在backstack中包含片段

问题描述 投票:3回答:1

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

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

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

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

我已经接近:

<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

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

android android-fragments android-navigation android-architecture-navigation
1个回答
3
投票

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

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

<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>
© www.soinside.com 2019 - 2024. All rights reserved.