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
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/。它解决了这个问题:)