0

我有一个有 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;
    }
}
4

1 回答 1

0

一旦视图寻呼机销毁片段,它将使用位置和数组重新创建,在实例化项目时使用逻辑..

于 2013-11-14T10:59:37.597 回答