viewPager2.setOffscreenPageLimit 预加载数量 进行fragment的懒加载

1、一般我们预加载的时候,都会指定显示的数量,比如viewPager2.setOffscreenPageLimit(1);

如果设置 setOffscreenPageLimit(1), 会如何处理呢?

经过测试,会加载第一页与第二页,如果切换到第二页,会加载第三页,但不会执行onResume方法,也就是说只要切换到当前的页才会执行onResume方法。

FileImageFragment onAttach
FileImageFragment onViewCreated
FileImageFragment onStart
FileImageFragment onResume  --->只有当前页里的fragment会执行。


FileVideoFragment onAttach
FileVideoFragment onViewCreated
FileVideoFragment onStart

2、如果设置为0,会咱样呢?直接崩了,并且会有提示一定要大于等于1

3、如果处理成懒加载的话,其实很简单,只要是这个方法setOffscreenPageLimit不去设置,就可以了。

一开始本来想处理onResume方法,来进行懒加载,其实并不需要,只要不调用setOffscreenPageLimit这个方法即可

注:

加载是在

@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
  ......这里是加载
}

但是如果page数量超过3的时候,自将第一个,与第五个,销毁,然后再创建。
解决:
setOffscreenPageLimit(2)这样就可以了。
道法自然
原文地址:https://www.cnblogs.com/jiduoduo/p/14999224.html