https://blog.csdn.net/androidxiaogang/article/details/51646868
https://www.jianshu.com/p/043020843899
PagerAdapter
package android.support.v4.view;
...
...
public abstract class PagerAdapter {
FragmentPagerAdapter
该类内的每一个生成的 Fragment 都将保存在内存之中,因此适用于那些相对静态的页,数量也比较少的那种,page是固定的,因为fragment不会被完全回收
package android.support.v4.app;
...
...
public abstract class FragmentPagerAdapter extends PagerAdapter {}
- 1、通过
offscreenPageLimit
来控制page container的cache数量 n*2+1;- 2、当加载的page超出cache count会用FragmentManager来释放fragment
- 3、被释放的fragment实际上不会被完全回收,因为没有调用onDestory(),当再次回到这个page时也没有调用onCreate();
- 4、当fragment被显示在屏幕上时,
setUserVisibleHint
为true,不显示时为false.
FragmentStatePagerAdapter
适用于: 比较多的fragment,保证回收,清理内存。被释放的fragment会被完全回收,调用了onDestory()的方法;
package android.support.v4.app;
...
...
public abstract class FragmentStatePagerAdapter extends PagerAdapter {}