我有一个托管片段A的活动。
当附加片段A时,我将子片段B或C(取决于某些标志)添加到A片段中的容器。
现在,如果我向前导航到一个新活动,然后点击后退按钮,片段A状态将被完美保留,但子片段不会被保留,并且在重新附加之前会暂停一段时间。
两个子片段也各自保持列表视图,所以理想情况下我想保留它们并在导航回来时保持它们的滚动位置。这可能吗?我在子片段上尝试了setretaininstance(true),但是抛出异常。
一些代码:
Fragment fluidLayoutFragment = FluidLayoutFragment.newInstance(userId);
FragmentTransaction ft = getChildFragmentManager().beginTransaction();
fluidLayoutFragment.setTargetFragment(this, 0);
ft.replace(R.id.layout_container, fluidLayoutFragment).commit();
答案 0 :(得分:0)
在不查看代码的情况下,您需要使用getChildFragmentManager()
代替getFragmentManager()
吗?
来自文档:http://developer.android.com/reference/android/app/Fragment.html#getChildFragmentManager()
返回一个私有的FragmentManager,用于放置和管理此片段内的片段。
答案 1 :(得分:0)
在阅读Mike的评论之后,我正在使用子片段管理器,但是当我将其切换到正常的片段管理器时,它现在似乎正常工作。看似奇怪的行为,但现在都很好。