使用 NavController 时如何 return 到上一个片段?

How do you return to the previous fragment when using a NavController?

我正在使用导航图在 Android 上导航片段。目前,我可以从一个片段转到另一个片段,然后 return 向后按。

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

目前,以下代码将我带到开头片段:

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

我也试过 getActivity().onBackPressed(); 这也让我回到了开始的片段。

你是如何return上一个Fragment的?我正在尝试遵循本指南, Pass data to the start destination,用于 return 将捆绑包发送到起始目的地,但它没有说明如何 return 到起始目的地。

我也想过创建另一个动作 return 到起始目的地,但是后退按钮会 return 到错误的片段。有办法阻止吗?

如果您只想弹出返回堆栈,setGraph() 是不必要的。只需在 NavController.

上拨打 popBackStack()