【发布时间】:2014-08-06 15:58:04
【问题描述】:
我阅读了许多已经处理过类似问题但无法找到完全回答我问题的帖子。
我有一个使用嵌套片段(来自 v4 支持库)的 Android 应用。我有一个包含片段的主要 FragmentActivity,并且该片段包含一个 ViewPager,它可以在 3 个内部片段之间滑动。 我希望能够保存 3 个内部嵌套片段中的每一个的状态,为此我为 3 个内部片段中的每一个覆盖了 onSaveInstanceState() 方法并尝试恢复 onActivityCreated() 中的状态,就像这样:
InternalFragment1.java:
public class InternalFragment1 extends Fragment {
@Override
public void onActivityCreated(Bundle savedInstanceState)
{
super.onActivityCreated(savedInstanceState);
// Commands to attach to main UI components...
if(savedInstanceState != null) {
// Commands to restore the saved state...
}
}
@Override
public void onSaveInstanceState(Bundle outState) {
// Commands to save the state into outState...
super.onSaveInstanceState(outState);
}
}
但是,当调用onActivityCreated() 时,无论是否存在已保存状态,savedInstanceState 始终为空。
我还应该指出,调用this.setRetainInstance() 会引发异常:“无法保留嵌套在其他片段中的片段”。
如何正确保存和恢复嵌套片段的状态?
【问题讨论】:
-
您找到解决方案了吗?拉尔夫
标签: java android android-fragments