导航组件返回按钮退出应用程序



我有一个问题,按下后退按钮总是退出应用程序。

这是一个单一的活动应用程序,其中初始加载的屏幕是一个两个选项卡的viewpager2布局,具有两个单独的导航图,每个选项卡一个;空白";取决于位置的片段(因为视图寻呼机createFragment()需要返回一个片段-这些"空白"片段每个包含一个NavHostFragment,即android:name="androidx.navigation.fragment.NavHostFragment"

";主";nav图具有app:defaultNavHost="true"集,另一个具有100%显式的app:defaultNavHost="false"
我试着将两者都设置为true(后退按钮无效(,一个设置为true,一个根本没有输入,但没有效果。我在导航图和前向导航中都设置了在目的地之间流动的所有操作。我只有合乎逻辑的";向前";行动补充道,我的目标是使用";popUpTo";以及";popUpToInclusive";稍后根据需要。

我的代码中没有调用onBackPressed()(我搜索了所有的项目文件(。我的测试设备是API26,开发人员选项没有任何工具来编程后退按钮(因为我正在疯狂地寻找错误,并认为id检查在那里(。

Viewpager2会干扰导航组件吗?我试图自己找出这个问题,但没有成功。

编辑

我在谷歌上搜索了更多,发现一个几乎相同的问题已经解决了——简而言之,添加一个viewpager作为带有两个嵌套导航图的根导航会干扰片段后堆栈,并且需要viewpager适配器在每次更改片段时设置主导航片段。请注意,在撰写本文时,库仍处于alpha状态。

请把下面的帖子作为我如何编码自己问题的答案——一旦我完成了代码,我会把它作为答案发布(如果允许的话(。

如何从ViewPager2的NavHostFragment中的片段导航回来?

如果你没有onBackPressed,那么在你的活动中调用这个方法,只需检查当前活动是否有finish方法,同时从上一个活动中调用当前活动。

如果什么都不起作用,那么在当前活动中调用onBackPressed方法,并在onBackPressedMethod中实现多臂点击退出。

点击两次退出:点击两次后退按钮退出活动

谢谢&希望对你有帮助。

相关内容

最新更新