如何使用 Android 中的导航控制器组件返回到根片段或层次结构的顶部?

how to back to the root fragment or top of hierarchy using Navigation Controller Component in Android?

假设我在底部导航视图中有 4 个选项卡。如果用户选择这些选项卡之一,则用户将从一个片段导航到其他片段。

假设用户选择第一个选项卡(主页),然后从以下位置导航:

fragmentA(主页)-> fragmentB -> fragmentC -> fragmentD -> fragmentE

我想使用 Android 中的导航控制器组件以编程方式从 fragmentE 返回到 fragmentA。怎么做?

我试过使用这段代码,但它只是返回到 fragmentD(形成 fragmentE)

btn.setOnClickListener{
 Navigation.findNavController(view).navigateUp()
}

NavControllerpopBackStack(int, boolean) 弹出回特定目标 ID:

Attempts to pop the controller's back stack back to a specific destination.

因此你可以使用

Navigation.findNavController(view).popBackStack(R.id.fragmentA, false)

在不弹出 fragmentA 本身的情况下弹回 fragmentA(这就是 inclusive 标志为 false 的原因)。