当前位置: 首页 > 知识库问答 >
问题:

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

仲孙焱
2023-03-14

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

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

碎片A(家)-

我想用Android中的导航控制器组件,以编程的方式从一个片段回到另一个片段。怎么做?

我尝试过使用这段代码,但它只是回到了fragmented(formfragmente)

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

共有1个答案

梁丘招
2023-03-14

NavController'spopBackStack(int, boolean)弹出返回到特定的目标id:

尝试将控制器的后堆栈弹出回特定目标。

因此你可以用

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

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

 类似资料:
  • 我正在我的应用程序中尝试导航架构组件。早些时候,我使用片段事务来实现以下功能。基本上,我想从导航。 碎片- 如果我正在使用导航组件并尝试 然后结果是FragmentA被FragmentB替换并且背景片段不可见。 我想知道一个解决方案,如果导航架构组件允许的话。 附言:我听说过嵌套导航主机,但从内部使用它好吗。 更新: FragmentB将有进一步交易的行动,例如: 碎片- 当用户按下后退按钮时,片

  • 我需要做一个自定义行为,当用户按下后退按钮时,用户将通过编程方式前往某个目的地。实际上,我已经在Android导航组件中阅读了这个返回处理按钮 但是我不知道如何使用自定义后退按钮code.it对我来说似乎很奇怪。 我试过使用下面的代码

  • null 在调用之前和之后,我尝试了,但都不起作用(这是有意义的:在它没有要弹出的内容之前;在它只关闭刚刚添加的片段之后)。这是否意味着唯一的方法是重写来拦截它,并确保在这些情况下不会被调用? 谢了!

  • 我有一个由导航组件组成的侧抽屉,当我导航到一个片段中包含的片段并按下返回键时,它会将整个堆栈弹出到根片段。让我解释一下。 我从根片段导航到片段A(这两个片段都在导航XML文件中定义),然后从片段A导航到片段B 根片段--- 我尝试过定义menuClass:从属于我的导航项,使用操作标签并在所述标签中定义“popupto”和“目的地”参数,但仍然没有结果。 我们将不胜感激。

  • 我正在我的应用程序中使用导航组件。我试图在单击操作栏图标时导航到片段,但它不起作用。以下是我的代码: 操作菜单。xml nav_主机。xml 主要活动。Java语言 这种方法不起作用-我如何导航?