Fragments in ViewPager do not load when restoring the containing fragment

I have a Fragment MyFragment vith a ViewPager containing more Fragment . It works correctly when I first load MyFragment, but if I go back and recreate it, Fragments in the ViewPager will not be displayed because the FragmentPagerAdapter.getItem method is not called.

I use

What's wrong?

 import android.app.Fragment; import android.app.FragmentManager; import android.support.v13.app.FragmentPagerAdapter; import android.support.v4.view.ViewPager; ... public class MyFragment extends Fragment { private ViewPager pager; private MyPagerAdapter adapter; private List<Fragment> fragmentList = new ArrayList<Fragment>(); public MyFragment() {} @Override public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { return inflater.inflate(R.layout.my_fragment_layout, container, false); } public void onViewCreated(View v, Bundle savedInstanceState) { super.onViewCreated(v, savedInstanceState); indicators = (PagerSlidingIndicator) v.findViewById(R.id.indicators); pager = (ViewPager) v.findViewById(R.id.pager); Fragment fragment1 = new Fragment1(); fragmentList.add(fragment1); Fragment fragment2 = new Fragment2(); fragmentList.add(fragment2); Fragment fragment3 = new Fragment3(); fragmentList.add(fragment3); adapter = new IndicatorPagerAdapter(getFragmentManager()); pager.setAdapter(adapter); } public class MyPagerAdapter extends FragmentPagerAdapter { public MyPagerAdapter(FragmentManager fm) { super(fm); } @Override public int getCount() { return fragmentList.size(); } @Override public Fragment getItem(int position) { return fragmentList.get(position); } } } 
+8
android android-fragments android-viewpager fragmentpageradapter
source share
1 answer

If you use nested fragments ("I have a MyFragment fragment with a ViewPager containing more fragments"), you should use getChildFragmentManager() rather than getFragmentManager() when setting up the FragmentPagerAdapter .

+22
source share

All Articles