关于ViewPager+Fragment中的坑

1.我的情况是Activity里嵌套了Fragment_0,然后Fragment_0里面又嵌套了两个Fragment:Fragment_1、Fragment_2,然后我在其中一个Fragment,Fragment_1里面有一个包含一系列Fragment的ViewPager,按照前面的步骤没什么问题,数据也是对的,可是!可是!当我在另一个fragment,也就是Fragment_2里添加的和Fragment_1里面的一模一样,然后就有问题了,Tab能正常显示,点击切换也没什么问题,但是当你活动下面的ViewPager时,居然指示条滑动和标题不对应,有时候滑动2、3次才能切换标题,但是指示条每次只移动一点,这是我已经把ViewPager里面的fragment都给去了,要不然直接就甭,现实的错误信息是我ViewPager里面的fragment的下拉刷新出问题了,这都是由于先前的Fragment_1里面的fragment有没有销毁的导致的!!

结局方法就:我们前面说到,FragmentPagerAdapter的构造方法需要一个v4包下的FragmentManager,之前我是在上溯到Activity里面去取的,其实FragmentPagerAdapter的构造方法里要传进去的是getChildFragmentManager()获取到的FragmentManager,这个是专门供当前Fragment用的FragmentManager,必须要这样,要不然可能你当时没发现问题,后来有问题了就准备哭吧,然后还需要注意的是,getChildFragmentManager()这个方法是属于Fragment里面的方法,如果你在app包下调用这个方法那么获取的就是app包下的FragmengManager,反之,如果你在v4包下调用这个方法那么获取的就是v4包下的FragmengManager!

2.还有,同一个Activity下,不能同时使用v4包下的Fragment和app包下的Fragment!

3.大神说,如果使用的不是v4包下的Fragment,需要导入v11支持库用v11的FragmentPagerAdapter!(我想这种适用于有太多地方,改不过来的情况吧)

https://blog.csdn.net/u012504392/article/details/53132001 

原文地址:https://www.cnblogs.com/genggeng/p/10679609.html