我想保存我的FragmentPagerAdapter的状态,以便在屏幕方向改变后可以重新使用它。不幸的是,saveState方法总是返回null。我的适配器由一个带有两个Fragments的ActionBar组成。
下面是我的方法调用
@Override
protected void onSaveInstanceState(Bundle outState) {
outState.putInt(FRAGMENT, viewPager.getCurrentItem() + 1);
outState.putParcelable(ADAPTER, fragmentTabAdapter.saveState());
super.onSaveInstanceState(outState);
}但outState中的适配器始终为空。我不明白为什么。关于saveState的使用,我是不是遗漏了什么特别的东西?希望你能帮助我!
发布于 2013-11-26 23:00:42
如果碎片未被销毁,则此示例有效
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
}https://stackoverflow.com/questions/19174827
复制相似问题