如何在另一个 Fragment 中使 `NavHostFragment` 响应 `onBackPressed`?

How to make a `NavHostFragment` respond to `onBackPressed` when inside another Fragment?

我有一个 Activity,其中 NavHostFragment 嵌套在 Fragment 中:

当我在 NavGraph 中导航时,正在为 NavHostFragment 创建一个 back stack。但是,只要我点击设备的后退按钮,而不是转到 后退堆栈 的前一个 Fragment,应用程序就会关闭(好像没有 返回堆栈).

我错过了什么吗? NavHostFragmentFragment 之间是否有任何耦合需要完成?

interact programmatically with the Navigation component, it is the call to setPrimaryNavigationFragment()` 所述,将 Fragments 挂接到系统后退按钮。

层次结构中的每个片段都必须设置 setPrimaryNavigationFragment()。虽然 NavHostFragment 可能会调用它自己,如果你从 XML 膨胀它并使用 app:defaultNavHost="true",你还需要在你的父片段上显式调用它。

// In your Activity's onCreate() when you add the parent fragment
if (savedInstanceState == null) {
    Fragment parent = new ParentFragment();
    getSupportFragmentManager().beginTransaction()
        .add(R.id.container, parent)
        .setPrimaryNavigationFragment(parent)
        .commit();
}