android - 在android中从第三个 fragment 返回到第一个 fragment

标签 android android-fragments back-stack

我遇到了 android fragment 后退堆栈的问题。这就是我的情况。

enter image description here

//我还不能发布图像,所以我传递了一个链接。

如您所见,我想从 fragment 1 转到 fragment 2,最后转到 fragment 3,但是当我在 fragment 3 处按后退按钮时,我想返回到 fragment 1。

我这样做就像我在图片中描述的那样,但是当我按后退按钮时什么也没有发生,当我第二次按它时,应用程序正在关闭。

我的 BackStack 看起来如预期,我上面只有“Main”条目。 另外,当我添加到 backstack Fragment 2 时,我可以正常从 Frag3 返回到 Frag2 再到 Frag1 (但这不是我想要的)。

//编辑:

第一:

我稍微调试了我的应用程序,我注意到当我按下后退按钮时,Fragment 会从 backstack 中弹出,并调用他的生命周期方法,但当前 fragment (Fragment 3)什么也不做(我记录了他的 onPause 和 onStop 方法,并且他们没有被调用)。也许这是一个问题?

第二:

我找到了一个实现 onBackStackChange 监听器的解决方案,并且在 onBackStacChange 方法中我只需将 Fragment3 替换为 Fragment1。这可行,但是正确吗?

最佳答案

使用...来实现

FragmentManager fmManager = activity.getSupportFragmentManager();
if (fmManager.getBackStackEntryCount() > 0) { fmManager.popBackStack(fmManager.getBackStackEntryAt(fmManager.getBackStackEntryCount()-2).getId(), fmManager.POP_BACK_STACK_INCLUSIVE); } 

-2是因为你想后退两个2 fragment

关于android - 在android中从第三个 fragment 返回到第一个 fragment ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30502964/

相关文章:

Android fragment 和后台堆栈

android - 如何启动一个将清除所有其他 Activity 的新 Intent?

android - Adobe AIR 3.0 captive runtime 与哪些版本的 Android 和 iOS 兼容?

android - 应用程序重启时的空白 fragment

android - 将值从回收器适配器传递到 android 中的 fragment

android - 如果后台堆栈中已经存在,则恢复 Activity 而不是启动

android - 如何使用 http 将 Android 中的文件从移动设备发送到服务器?

android - HttpUrlConnection.getInputStream 在 Android 中返回空流

android - java.lang.NoClassDefFoundError : android. security.MessageDigest

android - 在 View Pager 中的 Fragment 之间传递数据