本文只是一篇抄自 Android Fragment 你应该知道的一切 这篇文章的片段,以便本人日后回顾,有兴趣的话,可以看原文,博主鸿洋_ 的文章值得一看。
这两个类都是PagerAdapter的子类。自从Fragment问世,结合ViewPager制作的App主页案例特别多。。。。
既然Android攻城狮写了两个类,绝对有他们的考虑。肯定在使用场景上有所不同。
具体的差别如下:
- FragmentPagerAdapter:对于不再需要的fragment,对于不再需要的Fragment,选择调用detach方法,仅销毁视图,并不会销毁fragment实例。
- FragmentStatePagerAdapter: 不销毁不再需要的fragment,当 当前事务提交以后,会彻底的将fragment从当前的Activity的FragmentManager中移除,state标明,销毁时,会将其onSaveInstance(Bundle)中的bundle信息保留下来。当用户切换回来时,可以通过该Bundle恢复生成新的Fragment。
- 如上所述,使用FragmentStatePagerAdapter更省内存,但是销毁和新建也是需要时间的。一般情况下,如果你是制作主页面,用3、4个Tab,那么可以考虑使用FragmentPagerAdapter,如果你是用于ViewPager展示数量较多的条目时,那么建议使用FragmentStatePagerAdapter。