导航体系结构组件单程卡或后堆中的单个固定



我有一个底部范围,我想使用它在三个或四个不同的片段之间导航。如果我实例化了其中一个片段,我不想再做一次以相同的片段来重复使用它。如果已经在后堆栈之上,则提供启动Singletop属性的Navoptions类,以避免创建新实例。但是,导航控制器中片段的后堆栈的单重按钮或单一构成选项怎么样?如果我不需要创建片段的新实例,如果它已经在后堆中,我只想将其放在顶部?如何使用JetPack的导航体系结构组件来实现这一目标?

我只是偶然发现了这个问题,我终于找到了一个解决方案。您可以使用popUpTo实现它。

所以,例如,您有片段,登录和注册。

从Fragment Home中,您导航到登录,然后进行注册,然后再次登录。为了防止重复的登录片段,您应该将popUpTo="@id/login_fragment"设置为操作。

<action
    android:id="@+id/action_navigation_register_to_navigation_login"
    app:destination="@id/navigation_login"
    app:popUpTo="@id/navigation_login" />

堆栈可视化:

             Register
             ____
Login  ==>   Login   ==>   Login
____         ____          ____
Home         Home          Home

最新更新