【发布时间】:2013-07-21 18:32:50
【问题描述】:
我使用 ActionBarSherlock 和 ViewPager 将 4 个片段作为 SherlockFragmentActivity 中的标签页。
在正常情况下,此解决方案运行良好。
但是,如果应用程序异常退出,即由于内存不足而被 Android 操作系统杀死,则 ViewPager 在导航回 SherlockFragmentActivity 时无法再将新创建的 Fragment 附加到 Activity。
经过大量调试,我终于发现 SherlockFragmentActivity “记住”了附加到它的片段。当它被重新创建时,它会重新创建片段并将其附加到自身,这会阻止 ViewPager 将任何新片段附加到 Activity。
我通过使用空实现覆盖 SherlockFragmentActivity#onSaveInstanceState 来解决此问题,以强制 SherlockFragmentActivity 忘记所有片段。但是我还没有完美的解决方案。
我怀疑这是 SherlockFragmentActivity 的缺陷。
综上所述,我认为SherlockFragmentActivity在使用ViewPager时存在恢复内部碎片的缺陷。
有人遇到过同样的问题吗?
【问题讨论】:
-
如果您假设存在错误,那么您应该能够发布复制该行为的示例。
-
您使用的是什么版本的 ABS?
-
您从哪种视图寻呼机适配器扩展而来?
-
我使用的是 ActionbarSherlock 4.3。我的 ViewPager 是 android.support.v4.view.ViewPager。我的寻呼机适配器扩展自 android.support.v4.app.FragmentPagerAdapter。在向ActionBarSherlock的作者报告之前,我会准备一个样本进行双重确认。
标签: android actionbarsherlock android-viewpager fragment