相同点: FragmentPagerAdapter和FragmentStatePagerAdapter都继承自PagerAdapter
不同点:卸载fragment时,处理方法不同。
1、 FragmentStatePagerAdapter会销毁不需要的fragment,将会被彻底移除
2、FragmentPagerAdapter会选择detach(Fragment)方法处理,而非remove(Fragment)方法。只销毁fragment视图,实例还保留。也就是说FragmentPagerAdapter创建的fragment永远不会被销毁
在destroyItem()方法中,FragmentStatePagerAdapter调用的是remove()方法,适用于页面较多的情况;FragmentPagerAdapter调用的是detach()方法,适用于页面较少的情况。但是有页面数据需要刷新的情况,不管是页面少还是多,还是要用FragmentStatePagerAdapter,否则页面会因为没有重建得不到刷新
网友评论