android - 如何在不使用 NavController 将其添加到 backstack 的情况下导航 fragment ?

标签 android androidx android-architecture-navigation

NavController 具有方法 navigate,默认情况下使用 backstack 进行导航。如何在没有 backstack 的情况下导航到 fragment ? 请注意,我不是在询问 FragmentTransaction

最佳答案

如果您有以下堆栈:

A -> B

并想回到

A -> C

您可以通过从返回堆栈弹出 B 并添加 C 来执行“替换”操作。

在导航中,这是通过使用 app:popUpTo 完成的(如果需要,可以选择 app:popUpToInclusive="true")到 <action>在您的 XML 中或使用等效的 NavOptions API。

<action
  android:id="@+id/goToC"
  app:destination="@+id/c"
  app:popUpTo="@+id/b"
  app:popUpToInclusive="true"/>

关于android - 如何在不使用 NavController 将其添加到 backstack 的情况下导航 fragment ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53818362/

相关文章:

android - Android 的 Material Components 中新的 ExtendedFloatingActionButton 的收缩和扩展功能不起作用

android - Jetpack 使用 fragment 组合 NavHost

android - 启动android模拟器的最快方法

android - 如何使用 Android Studio 0.3.0 导入新模块(android 库项目)

java - Android TextInputEditText/TextInputLayout 截断错误信息

android - 我将现有项目更新为 androidx 但出现了 ExampleInstrumentedTest--> getTargetContext 错误

android - 如何在不使用 xml 的情况下在 Kotlin 中以编程方式使用 AndroidX 导航架构组件?

android-layout - 带有导航组件的单个事件 : how to handle different AppBar/Themes

android - 退出应用程序时停止 GPS

java - 给新变量赋值?