我有一个有 7 个页面的 ViewPager,我在导航时保留了其中的 4 个,并且在被另外 4 个集合然后 GC 替换后它被销毁。
gPager.get().setOffscreenPageLimit(4);
在我的习惯里面FragmentStatePagerAdapter
@Override public Parcelable saveState() { return null; }
我的问题是我收到空指针错误,即使我在 Fragment 像 'mDrawerLayout' 和mDrawerList
. 例子:
View rootView = inflater.inflate(R.layout.drawer_layout_fragment, container, false);
mDrawerLayout = (DrawerLayout) rootView.get().findViewById(R.id.drawer_layout);
mDrawerList = (ListView) rootView.get().findViewById(R.id.left_drawer);
如果其他 Fragment 被销毁并且一些正在 ViewPager 页面的屏幕上显示。这些碎片是再次重新创建还是即使它经历了仍然保留onDestory
?
如果Frag2
被破坏而Frag1
不是。viewPager(位于主活动中)是否会再次调用setAdapter
?或者它会自动跳过setAdapter
并直接去MyCustomPagerAdapter
填充被破坏的片段?
@覆盖
public Fragment getItem(int arg0) {
SavePref saveState = new SavePref(mContext.get());
switch(arg0){
/** Android tab is selected */
case 0:
Frag f1 = new Frag1()
return f1;
case 1:
Frag f2 = new Frag2()
return f2;
}
}