0

我有一个托管片段 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();
4

2 回答 2

0

如果不查看您的代码,您可能需要使用getChildFragmentManager()而不是getFragmentManager()

从文档: http: //developer.android.com/reference/android/app/Fragment.html#getChildFragmentManager()

返回一个私有的 FragmentManager 用于在这个 Fragment 中放置和管理 Fragment。

于 2013-12-04T21:32:46.183 回答
0

在阅读了 Mike 的评论后,我使用了一个子片段管理器,但是当我将它切换到一个普通的片段管理器时,它现在似乎可以工作了。看起来像奇怪的行为,但现在一切都很好。

于 2013-12-04T22:02:49.807 回答