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

时间:2019-04-21 03:49:33

标签: android android-jetpack android-navigation android-architecture-navigation

在底部导航视图中说我有4个标签。并且如果用户选择这些标签之一,则用户将从一个片段导航到其他片段。

让用户选择第一个标签(首页),然后从以下位置进行导航:

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

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

我尝试使用此代码,但它只是回到fragmentD(来自fragmentE)

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

1 个答案:

答案 0 :(得分:0)

NavController的{​​{3}}弹出一个特定的目标ID:

  

尝试将控制器的后退栈弹回到特定的目的地。

因此您可以使用

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

要弹出片段A而不弹出片段A本身(这就是inclusive标志为false的原因。