Родительский фрагмент не отображает дочерний ViewPager - PullRequest
1 голос
/ 07 марта 2012

Я использую пакет совместимости Android с уровнем API 10. У меня есть FragmentActivity, и в его методе onCreate я динамически добавляю вновь созданный экземпляр Fragment (myPagerFragment), используя:

getSupportFragmentManager().beginTransaction().add(R.id.fragment_container, myPagerFragment).commit();

myPagerFragment содержитViewPager, который использует FragmentPagerAdapter.Реализация в соответствии с документацией Android, ничего особенного.При нажатии кнопки в одном из дочерних фрагментов ViewPager myPagerFragment будет удален и заменен новым экземпляром Fragment (myOtherFragment), используя:

FragmentTransaction ft = getFragmentManager().beginTransaction();
ft.setCustomAnimations(android.R.anim.fade_in, android.R.anim.fade_out);
ft.replace(R.id.fragment_container, myOtherFragment).commit();

myOtherFragment отображает простое представление, содержащее кнопку.При нажатии этой кнопки myOtherFragment будет удален и заменен новым экземпляром myPagerFragment, используя:

FragmentTransaction ft = getFragmentManager().beginTransaction();
ft.setCustomAnimations(android.R.anim.fade_in, android.R.anim.fade_out);
ft.replace(R.id.fragment_container, myPagerFragment).commit();

. В этот момент myPagerFragment больше не отображается, как в начале, а вместо этого:отображает пустой экран.В журнале нет сбоев и ничего полезного.

Я попробовал этот метод с другими представлениями, например, заменив myPagerFragment фрагментом, который содержит определение простого представления, и это работает правильно и как и ожидалось.Только фрагменты содержат ViewPager, который некорректно отображается при последовательных загрузках.

Как сделать так, чтобы фрагменты, содержащие ViewPager, всегда отображались правильно?

1 Ответ

2 голосов
/ 07 марта 2012

Вы не можете вкладывать фрагменты в фрагменты.Следовательно, вы не можете поместить FragmentPagerAdapter в ViewPager в Fragment.Пожалуйста, перепроектируйте ваш интерфейс, чтобы разрешить этот конфликт, например, избавившись от самого внешнего Fragment.

...