今天项目要求改布局,在首页的tabhost里,将两个fragment的布局变成一样的,只是内容不一样,改完了之后,就出现了BUG,点开一个片段之后,再点开另一个片段,该片段显示的是空白。
后来花了不少时间去解决这个问题,在别人的提示下,终于发现问题。
因为这两个片段里面还有viewpager,也就是整体的框架是,Activity里有一个ViewPager,ViewPager关联的Fragment里还有ViewPager,所以出现了这种奇怪的问题。
原因是因为,在获得FragmentManager的时候,都是通过getSupportFragmentManager()这个方法去获取的,于是就出现了BUG。
解决方法:在Activity的Fragment中,要获取FragmentManager需要调用getSupportFragmentManager()方法,而在Fragment的Fragment中获取FragmentManager,则需要调用getChildFragmentManager()方法去获取,因为需要用当前Fragment的FragmentManager去管理,而不是使用Activity的FragmentManager去管理。