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

时间:2020-09-27 14:57:01

标签: android android-fragments android-navigation-graph

我正在使用导航图在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。有办法阻止这种情况吗?

1 个答案:

答案 0 :(得分:1)

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