3

我想保存我的状态,FragmentPagerAdapter以便在屏幕方向改变后可以重用它。不幸的是,方法 saveState 总是返回null。我的适配器由一个ActionBar和两个组成Fragments

这是我的方法调用

@Override
protected void onSaveInstanceState(Bundle outState) {
    outState.putInt(FRAGMENT, viewPager.getCurrentItem() + 1);
    outState.putParcelable(ADAPTER, fragmentTabAdapter.saveState());
    super.onSaveInstanceState(outState);
}

但是 outState 中的 Adapter 始终为 null。我不明白为什么。关于使用 saveState,我有什么特别想念的吗?希望你能帮我!

4

1 回答 1

1

如果片段未销毁,则此示例有效

private int pageID;

@Override
public void onPause() {
super.onPause();
pageID = mViewPager.getCurrentItem(); // 1 save
}

@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {

mViewPager.setCurrentItem(pageID, false); // 2 load

}
于 2013-11-26T15:00:41.933 回答