1

我使用了Android兼容包与API级别10.我有一个FragmentActivity,并在其onCreate方法,我动态地添加一个新创建的片段实例(myPagerFragment):父片段使用不显示儿童ViewPager

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不再显示,因为它在一开始做,而是显示黑屏。没有崩溃,在日志中没有任何用处。

我已经尝试过使用其他视图的方法,例如,用包含简单视图定义的片段替换myPagerFragment,并且这种方式可以正常工作,并且和预期的一样。只有包含ViewPager的碎片,在连续加载时显示不正确。

如何让包含ViewPager的碎片始终正确显示?

回答

2

你不能在片段中嵌套片段。因此,您不能在FragmentViewPager中输入FragmentPagerAdapter。请重新设计您的用户界面以解决此冲突,例如通过摆脱最外层的Fragment

+1

请注意,嵌套'片段'现在**可用**,请参阅[这个问题](http://stackoverflow.com/questions/6221763/android-can-you-nest-fragments) – 2014-07-27 02:03:51