当前位置: 首页 > 知识库问答 >
问题:

“孙子”片段之间的返回按钮

马宜民
2023-03-14

我有一个活动是持有5个片段。其中一个片段是持有5更多的碎片。如果我添加到片段管理器a. addToBackStack(空)。返回按钮返回到活动的最后一个片段,而不是从“父亲”片段的最后一个片段(即持有5更多的片段)。

有什么帮助吗。。

编辑:

ACTIVITY:

fragmentManager = getSupportFragmentManager();
fragmentManager.beginTransaction().
            replace(mainContent.getId(), currentFragment)
            .addToBackStack(null)
            .commit();


FRAGMENT:

fragmentManager = getChildFragmentManager();
fragmentManager.beginTransaction().
            replace(mainContent.getId(), currentFragment)
            .addToBackStack(null)
            .commit();

共有2个答案

钱弘壮
2023-03-14

我认为问题可能是这里的“片段管理器”。有不止一个FragmentManager

有一个用于ctivity.getFragmentManager()的FragmentManager。

Fragment.getChildFragmentManager()或Fragment.getFragmentManager()。

假设您有一个活动、一个父片段和一个子片段。因此,不是活动。getFragmentManager(),我认为在您的情况下,您可能需要childFragment。getFragmentManager()或父片段。getChildFragmentManager()。

请注意,如果您使用的是支持包,则名称可能不同。

谷良弼
2023-03-14

这可能就是这里提到的bug:https://code.google.com/p/android/issues/detail?id=40323

您可以通过手动处理“后退”来解决它。有关许多解决方法,请参阅此线程:Android 4.2:带有嵌套片段的后退堆栈行为

 类似资料:
  • 在Android中,当我们用一个新的片段替换容器视图时,我们可以使用replace()和addToBackStack(),因此按下back按钮就可以转到上一个片段。 但如果出现以下情况怎么办: 在Activity1中,我可以按下back按钮从fragment2转到fragment1。但当fragment2启动另一个活动时,从Activity2按下back按钮,它会将我带到Activity1中的fr

  • 我想创建带有PagerView的片段,但运行以下代码会返回一个IllegalStateException: 源代码: IllegalStateException: 进程:com.company.user.blabla,pid:22256 java.lang.illegalstate异常:带有适配器的ViewPager com.company.user.blabla.fragments.homeFr

  • 嗨,我已经在应用程序抽屉中创建了片段,现在当我按下一个片段上的后退按钮时,它正在关闭应用程序。

  • 我在过去的两个小时里一直在试图解决这个问题。试过很多东西。 该片段似乎正在向我的适配器传递空上下文。我尝试在onCreate和onCreateView和onActivityCreated中初始化上下文变量。同样的结果。

  • 我正在调用tabhost片段活动中的映射片段

  • 我正试图做到这一点:http://android-er.blogspot.com/2012/06/communication-between-fragments-in.html只不过我用的是一台碎纸机 我有一个有两个片段的活动 FragmentA有一个编辑文本和一个按钮,FragmentB有一个文本视图 现在我想要的是,每当我在编辑文本中输入一些内容并单击按钮时,我的文本视图中就会出现一些内容。