为什么FragmentPagerAdapter saveState始终为null?

时间:2013-10-04 06:35:41

标签: android fragmentpageradapter

我想保存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中的适配器始终为null。我不明白为什么。有没有什么特别的,我错过了使用saveState? 希望你能帮助我!

1 个答案:

答案 0 :(得分: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

}