使用NavController时,如何返回上一个片段?

问题描述

我正在使用导航图在Android上导航片段。目前,我可以从一个片段移到另一个片段,然后再按一次返回。

现在,我需要返回到嵌入在托管Fragment的Activity中托管的FloatingActionButton中的OnClickListener中的上一个Fragment,而不是后按。

当前,以下代码将我带到了开始的片段:

NavController navController = NavHostFragment.findNavController(FragmentSelect.this);
            navController.setGraph(R.navigation.nav_graph,bundle);
            navController.popBackStack();

我也尝试过getActivity().onBackpressed();,这也使我回到了开始的片段。

如何返回上一个片段?我正在尝试遵循本指南, Pass data to the start destination,用于将分发包返回到起始目的地,但是省略了如何返回到起始目的地。

我还考虑过创建另一个操作以返回到起始目标,但是返回按钮将返回错误的Fragment。有办法阻止这种情况吗?

解决方法

如果您要做的只是弹出后退堆栈,则不需要setGraph()。只需致电popBackStack()上的NavController

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...