通过源码中的两个方法来对比一下
FragmentPagerAdapter
FragmentStatePagerAdapter
总结:
源码解析:
FragmentPagerAdapter中的item都是只有在fragment为空的时候会通过getItem获取新的item,而已经加载过的item会被保存到内存中,在需要获取的时候直接attach,而在destroyItem方法中并没有真正移除掉item,只是detach解除了关联而已。
FragmentStatePagerAdapter 中的item每次都会通过getItem来获取新的item,而在destroyItem方法中是真正的remove掉了item
——————————————————————————————————–
对比用法
FragmentPagerAdapter : 每个生成的fragment都会被保存在内存中,因此适用于fragment相对静态 ,数量较少的页面。
FragmentStatePagerAdapter : 只保留当前页面,当页面离开视线的时候会被删除,释放内存,因此适用于fragment动态性大,数量多的页面