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;
}}
2 ответов
Я нашел проблему. Это заняло у меня два дня, но эй, это исправлено.
вместо
mAdapter = new AlbumAdapter(getFragmentManager(), mActiveProject.getInspiration());
вы должны использовать
mAdapter = new AlbumAdapter(getChildFragmentManager(), mActiveProject.getInspiration());
так много для 5 символов.
Я искал
это надолго, наконец, нашло решение.Измените экземпляр адаптера страницы FragmentPagerAdapter
to FragmentStatePagerAdapter
пример:
class PageAdapter extends FragmentStatePagerAdapter {