繁体   English   中英

Android导航组件如何打开新片段而不将其添加到backStack?

[英]Android Navigation Component how to open new fragment without adding it to backStack?

我正在使用导航组件 (JetPack) 进行导航。 我想打开一个新的片段 R.id.twoFragment :

navController.navigate(R.id.twoFragment)

但我需要 R.id.twoFragment 不能进入 backStack。 我怎样才能做到这一点?

这两行使技巧起作用:

app:popUpTo="@id/fragmentA"
app:popUpToInclusive="true"

如果你想从 A 到 B 并期望完成 A:

您需要通过此操作调用 B:

<fragment
    android:id="@+id/fragmentA"            
    tools:layout="@layout/fragment_a">

    <action
        android:id="@+id/action_call_B"
        app:destination="@+id/fragmentB"
        app:popUpTo="@id/fragmentA"
        app:popUpToInclusive="true" />

</fragment>

<fragment
    android:id="@+id/fragmentB"
    tools:layout="@layout/fragment_b">


</fragment>

如果您将日志放入片段中,您可以看到在使用此操作调用 fragmentB 后 fragmentA 被销毁。

问题点 - 据我所知,不可能在不将片段 B 添加到 backstack 的情况下添加片段 B。 当您调用操作时,它会自动添加

我正在使用导航组件 (JetPack) 进行导航。 我想打开一个新的片段 R.id.twoFragment :

navController.navigate(R.id.twoFragment)

但是我需要R.id.twoFragment不能进入backStack。 我怎样才能做到这一点?

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM