我正在使用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的片段始终正确显示?
答案 0 :(得分:2)
您不能将片段嵌入片段中。因此,您无法将FragmentPagerAdapter
放入ViewPager
的{{1}}中。请重新设计您的用户界面以解决此冲突,例如删除最外层的Fragment
。