当我回来时,Android片段在viewpager中为空

当我回来时,Android片段在viewpager中为空,android,android-fragments,android-viewpager,android-adapter,Android,Android Fragments,Android Viewpager,Android Adapter,我有一个导航抽屉,里面有一个扩展片段的ViewPager。当我单击抽屉的项目时,我打开了viewpager,其中有三个片段。它工作得很好。但是,如果我再次单击同一抽屉项目以再次打开viewpager,则viewpager为空。。我能看到标签,但看不到里面的碎片。这是Viewpager: public class ViewPagerManager extends Fragment { public static ViewPagerManager instance = null; T

我有一个导航抽屉,里面有一个扩展片段的ViewPager。当我单击抽屉的项目时,我打开了viewpager,其中有三个片段。它工作得很好。但是,如果我再次单击同一抽屉项目以再次打开viewpager,则viewpager为空。。我能看到标签,但看不到里面的碎片。这是Viewpager:

public class ViewPagerManager extends Fragment {
    public static ViewPagerManager instance = null;
    Toolbar toolbar;
    public static PagerSlidingTabStrip tabs;
    public MyPagerAdapter adapter;
    public ViewPager pager;
    @Override
    public View onCreateView(LayoutInflater inflater, ViewGroup container,
            Bundle savedInstanceState) {
        View view = inflater.inflate(R.layout.activity_tabbed, container, false);
        instance = this;
        adapter = new MyPagerAdapter(getFragmentManager());

        pager = (ViewPager)view.findViewById(R.id.pager);
        tabs = (PagerSlidingTabStrip)view.findViewById(R.id.tabs);

        pager.setAdapter(adapter);
        tabs.setViewPager(pager);

        pager.setOffscreenPageLimit(3);

        adapter.notifyDataSetChanged();
        pager.invalidate();
        return view;
    }

    public class MyPagerAdapter extends FragmentPagerAdapter {

        private final String[] TITLES = { "One", "Two", "Three" };

        public MyPagerAdapter(FragmentManager fm) {
            super(fm);
        }

        @Override
        public CharSequence getPageTitle(int position) {
            return TITLES[position];
        }

        @Override
        public int getCount() {
            return TITLES.length;
        }
        @Override
        public int getItemPosition(Object object) {
            return POSITION_NONE;

        }


        @Override
        public Fragment getItem(int position) {
            switch (position) {
            case 0:
                // Top Rated fragment activity
                return new FragmentOne();
            case 1:
                // Games fragment activity
                return new FragmentTwo();
            case 2:
                // Games fragment activity
                return new FragmentThree();

            }

            return null;
        }
    }
}

这正常吗?我怎样才能解决这个问题?如果可以帮助的话,我正在使用PagerSlidingAbstrip库。

返回片段时,尝试重新绘制最后选定的页面。我认为viewpager没有缓存,您需要重新选择最后一项。您可以重写onresume方法

使用此代码

 adapter = new MyPagerAdapter(getChildFragmentManager()); 
而不是

adapter = new MyPagerAdapter(getFragmentManager()); 

太神了它起作用了!!但是……为什么?有什么不同?非常感谢。您使用的是嵌套片段,因为您的ViewPager位于片段中。这花了我很多时间来修复。我从来没有想到这个问题会出现,可能是因为我还没有完全理解这些零碎的管理者。谢谢你,克里斯