I'm trying to make an app that has a ViewPager
in a Fragment that is part of a TabHost
. Everything works out fine. I have my tabbar, I can switch tabs. When I switch to the tab with the ViewPager
, all is shown correctly.
However, as soon as I leave this tab with the ViewPager
and return this tab, my content is not shown. If I scroll to the side twice I do see my next image and if I go back two times I also see the images are loaded (probably the offscreenloaded
).
See that my TabFragment
is being reinstantiated when I return to it but the fragments in the ViewPager
aren't.
@Override public void onActivityCreated(Bundle savedInstanceState) { mProjectText = (TextView) getView().findViewById(R.id.projectText); mProjectText.setText(mActiveProject.getInspirationText()); mAdapter = new AlbumAdapter(getFragmentManager(), mActiveProject.getInspiration()); mPager = (ViewPager)getView().findViewById(R.id.pager); mPager.setAdapter(mAdapter); super.onActivityCreated(savedInstanceState); } public class AlbumAdapter extends FragmentStatePagerAdapter { private ArrayList<ProjectContent> mItems; public AlbumAdapter(FragmentManager fm, ArrayList<ProjectContent> items) { super(fm); this.mItems = items; } @Override public Fragment getItem(int position) { return AlbumContentFragment.newInstance(mItems.get(position)); } @Override public int getCount() { return mItems.size(); } @Override public int getItemPosition(Object object) { return POSITION_NONE; }}
Technically, ViewPager is not deprecated, but the two concrete PagerAdapter implementations — FragmentPagerAdapter and FragmentStatePagerAdapter — are deprecated.
I found the problem. It took me two days, but hey, it's fixed.
Instead of using
mAdapter = new AlbumAdapter(getFragmentManager(), mActiveProject.getInspiration());
You should use
mAdapter = new AlbumAdapter(getChildFragmentManager(), mActiveProject.getInspiration());
So much for 5 characters.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With