viewpager+fragment的懒加载和缓存页面优化

一, 懒加载实现,
1,创建LazyFragment, 是懒加载的fragment, 要实现完全意义的懒加载, 我试了试, 即便是设置.setOffscreenPageLimit(2);//设置缓存view 的个数(实际有3个,缓存2个+正在显示的1个), 为0 或是为1 他还是内部先实现了预加载, 所以不管用, so, 那就实现页面可见后的数据懒加载咯, 也可以实现功能

-->1, 在LazyFragment的成员变量中设置两个标志位,

viewpager+fragment的懒加载和缓存页面优化_第1张图片
Paste_Image.png

-->2, 在onCreate方法中把 isPrepared = true 让后尝试加载, 在setUserVisibleHint方法中也是只要是页面可见, 也进行懒加载,

viewpager+fragment的懒加载和缓存页面优化_第2张图片
Paste_Image.png
viewpager+fragment的懒加载和缓存页面优化_第3张图片
Paste_Image.png
viewpager+fragment的懒加载和缓存页面优化_第4张图片
Paste_Image.png
viewpager+fragment的懒加载和缓存页面优化_第5张图片
Paste_Image.png

2, 现在只是实现了数据的懒加载, 当页面划走的时候, 有时候list还要保存当前位置, 这是后就需要缓存移除的页面了, 我认为最优化的解决方式是:
复用Fragment的RootView
步骤1:在onDestroyView方法内把Fragment的RootView从ViewPager中remove

viewpager+fragment的懒加载和缓存页面优化_第6张图片
Paste_Image.png

步骤2:在onCreateView方法内复用RootView

viewpager+fragment的懒加载和缓存页面优化_第7张图片
Paste_Image.png

你可能感兴趣的:(viewpager+fragment的懒加载和缓存页面优化)