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

Agu*_*ana 4 android android-navigation android-jetpack android-architecture-navigation

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

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

片段A(主目录) -> 片段B -> 片段C -> 片段D -> 片段E

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

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

btn.setOnClickListener{
 Navigation.findNavController(view).navigateUp()
}
Run Code Online (Sandbox Code Playgroud)

ian*_*ake 11

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

尝试将控制器的返回堆栈弹出到特定目的地。

因此你可以使用

Navigation.findNavController(view).popBackStack(R.id.fragmentA, false)
Run Code Online (Sandbox Code Playgroud)

弹回到fragmentA而不弹出fragmentA本身(这就是inclusive标志是 的原因false)。