ViewPager в TabFragment не загружается второй раз

Я пытаюсь сделать приложение, которое имеет ViewPager в фрагменте, который является частью TabHost.

все работает нормально. У меня есть таббар, я могу переключать вкладки. Когда я переключаюсь на вкладку с ViewPager, все отображается правильно. Но как только я оставляю эту вкладку с ViewPager и возвращаю эту вкладку, мое содержимое не отображается. Если я прокручиваю в сторону дважды, я вижу следующее изображение. И если я вернусь два раза, я также увижу, что изображения загружены (возможно, offscreenloaded) см. что мой TabFragment восстанавливается, когда я возвращаюсь к нему, но фрагменты в ViewPager нет.

Я включил макет экрана и часть моего кода.

может кто-нибудь помочь?

Ура!

@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;
}}

The mockup for the app

2 ответов


Я нашел проблему. Это заняло у меня два дня, но эй, это исправлено.

вместо

mAdapter = new AlbumAdapter(getFragmentManager(), mActiveProject.getInspiration());

вы должны использовать

mAdapter = new AlbumAdapter(getChildFragmentManager(), mActiveProject.getInspiration());

так много для 5 символов.


Я искал это надолго, наконец, нашло решение.Измените экземпляр адаптера страницы FragmentPagerAdapter to FragmentStatePagerAdapter пример:

class PageAdapter extends FragmentStatePagerAdapter {