viewpager的缓存加载机制

2021-12-01  本文已影响0人  nich

viewpager有缓存预加载机制,主要使用setOffscreenPageLimit(int limit) 

1.setOffscreenPageLimit(int limit) 解释 

   缓存:左右都会缓存limit个页面,比如limit缓存数量是2,在tab3,那会缓存tab1、tab2、tab4、tab5,如果其他界面已经缓存过的话会调用onDestroyView销毁

   预加载:limit缓存数量是2,如果在tab1会预加载tab2、tab3,切换到tab2的话会预加载tab4,

2.viewpager源码分析

viewpager继承viewgroup当然也要走onmeasure,ondraw,onlayout方法,主要看onmeasure里面的populate()方法

这里的mAdapter是PagerAdapter

fragmentpageradapter就是你写的适配器,接下来看具体实现

所以我们可以用uservisiblehint来懒加载,需要注意的是uservisiblehint不是生命周期函数,初始化的时候他的执行在fragment的onattch之前

Fragment 生命周期按先后顺序:onAttach -> onCreate -> onCreatedView -> onActivityCreated -> onStart -> onResume ->onPause -> onStop -> onDestroyView -> onDestroy -> onDetach

上一篇下一篇

猜你喜欢

热点阅读