我有一个活动,持有5个片段。 其中一个片段还有5个片段。 如果我添加到fragmentManager一个.addToBackStack(null)。 后退按钮返回活动的最后一个片段,而不是“父”片段中的最后一个片段(还有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();
答案 0 :(得分:1)
这可能是这里提到的错误:https://code.google.com/p/android/issues/detail?id=40323
您可以通过手动处理“返回”来解决此问题。请参阅此主题以获取大量变通方法:Android 4.2: back stack behaviour with nested fragments
答案 1 :(得分:-1)
我认为问题可能出在“fragmentManager”这里。有多个FragmentManager
。
FragmentManager
- Activity.getFragmentManager()
有Activity
。
FragmentManager
- Fragment.getChildFragmentManager()
或Fragment.getFragmentManager()
内有Fragment
个孩子Fragment
。
假设您有activity
,parentFragment
和childFragment
。因此,我认为在您的情况下,您可能需要activity.getFragmentManager()
或childFragment.getFragmentManager()
,而不是parentFragment.getChildFragmentManager()
。
请注意,如果您使用的是支持包,则名称可能会有所不同。