【发布时间】:2020-11-12 11:33:14
【问题描述】:
我正在使用导航组件 (JetPack) 进行导航。我想打开一个新的片段 R.id.twoFragment :
navController.navigate(R.id.twoFragment)
但我需要 R.id.twoFragment 不进入 backStack。我该怎么做?
【问题讨论】:
标签: android kotlin android-navigation
我正在使用导航组件 (JetPack) 进行导航。我想打开一个新的片段 R.id.twoFragment :
navController.navigate(R.id.twoFragment)
但我需要 R.id.twoFragment 不进入 backStack。我该怎么做?
【问题讨论】:
标签: android kotlin android-navigation
这两行让这个技巧奏效:
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>
如果你把日志放到你的片段中,你可以看到片段A在使用这个动作调用片段B之后被销毁了。
指向问题 - 据我所知,如果不将片段 B 添加到后台堆栈,则无法添加片段 B。当您调用操作时,它会自动添加
【讨论】: