父片段不显示子ViewPager

时间:2012-03-07 11:06:39

标签: android android-fragments android-viewpager android-support-library

我正在使用API​​级别为10的Android兼容包。我有一个FragmentActivity,在其onCreate方法中,我使用以下方法动态添加新创建的Fragment实例(myPagerFragment):

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

myPagerFragment包含一个使用FragmentPagerAdapter的ViewPager。该实现是根据Android文档没有什么特别的。当单击其中一个ViewPager子片段中的按钮时,将删除myPagerFragment并使用以下命令替换为新的片段实例(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不再像开头那样显示,而是显示一个空白屏幕。没有崩溃,日志中没有任何用处。

我已经尝试过这个方法与其他视图,例如,用包含简单视图定义的Fragment替换myPagerFragment,这可以正常工作并且符合预期。只有包含ViewPager的片段才会在连续加载时显示不正确。

如何使包含ViewPager的片段始终正确显示?

1 个答案:

答案 0 :(得分:2)

您不能将片段嵌入片段中。因此,您无法将FragmentPagerAdapter放入ViewPager的{​​{1}}中。请重新设计您的用户界面以解决此冲突,例如删除最外层的Fragment