Android 当在另一个片段中时,如何使“NavHostFragment”响应“onBackPressed”?

Android 当在另一个片段中时,如何使“NavHostFragment”响应“onBackPressed”?,android,android-navigation,android-navigation-graph,Android,Android Navigation,Android Navigation Graph,我有一个活动,其NavHostFragment嵌套在片段中: 活动的根视图 片段 NavHostFragment 当我在NavGraph中导航时,正在为NavHostFragment创建一个后堆栈。但是,只要我点击设备的后退按钮,应用程序就会关闭(好像没有后退堆栈一样),而不是转到后退堆栈的上一个片段 我错过什么了吗?NavHostFragment和Fragment之间是否存在需要执行的任何耦合?如上所述,是对的调用将片段挂接到系统后退按钮 层次结构中的每个片段都必须设置setP

我有一个
活动
,其
NavHostFragment
嵌套在
片段
中:

  • 活动的根
    视图
    • 片段
      • NavHostFragment
当我在NavGraph中导航时,正在为
NavHostFragment
创建一个后堆栈。但是,只要我点击设备的后退按钮,应用程序就会关闭(好像没有后退堆栈一样),而不是转到后退堆栈的上一个
片段

我错过什么了吗?
NavHostFragment
Fragment
之间是否存在需要执行的任何耦合?

如上所述,是对的调用将片段挂接到系统后退按钮

层次结构中的每个片段都必须设置
setPrimaryNavigationFragment()。如果您从XML中使用
app:defaultNavHost=“true”
,则
NavHostFragment
可能会调用它本身,但您还需要在父片段上显式调用它

// 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();
}

感谢您的支持,@ianhanniballake\o/。它解决了这个问题:)