viewpager 缓存
setOffscreenPageLimit(1) 默认缓存 3个页面 显示一个缓存2个
预加载:显示一个缓存2个
如果一个页面需要 5M内存 3个页面就会有15m
如果一个页面加载需要.0.5s 个页面就需要1.5s
但是我们此时 只是显示一个 页面 所以 会造成浪费
我们需要懒加载
懒加载: 先缓存一个空白页面 避免预加载 只有真正显示的时候才加载(只是不记载 网络数据)
缓存的机制原理
viewpager的函数
关键函数 populate(); 填充 fragment adapter 适配器模式
viewpager和 Adapter如何联系的?在 viewpager 的 populate()
1
mAdapter.startUpdate(this);
1:如果item是空 创建一个item'
====PagerAdapter 中的关键函数
public abstract int getCount(); 有多少个页面
startUpdate(@NonNull ViewGroup container) 开始更新ui
instantiateItem(@NonNull ViewGroup container, int position) 初始化
destroyItem(@NonNull ViewGroup container, int position, @NonNull Object object) 销毁item
setPrimaryItem(@NonNull ViewGroup container, int position, @NonNull Object object) 设置当前页面
finishUpdate() 结束更新
缓存就是把 fragment 放到 arraylist
网友评论