ViewPager使用细节,如何设置成每次只初始化当前的Fragment,其他的不初始化?

我们可不可以设置ViewPager的预加载为0,不能解决问题

        vp.setOffscreenPageLimit(0);

 

关键在于setUserVisibleHint(boolean isVisibleToUser)方法

/**

 * Fragment预加载问题的解决方案:

 * 1.可以懒加载的Fragment

 * 2.切换到其他页面时停止加载数据(可选)

 * Created by yuandl on 2016-11-17.

 *blog:http://blog.csdn.net/linglongxin24/article/details/53205878

 */

  1. 初始化的时候去加载数据
  2. 在setUserVisibleHint()方法中设置加载数据方法,加载数据方法中设置检测方法,如果视图已经初始化而且视图对用户可见(getUserVisibleHint()为true),则加载数据
  3. 可选:当视图已经对用户不可见并且加载过数据,如果需要在切换到其他页面时停止加载数据,

azyLoadFragment是一个抽象类,可以作为BaseFragment,继承它。

(1).用setContentView()方法去加载要显示的布局

(2).lazyLoad()方法去加载数据

(3).stopLoad()方法可选,当视图已经对用户不可见并且加载过数据,如果需要在切换到其他页面时停止加载数据,可以覆写此方法

猜你喜欢

转载自blog.csdn.net/github_37130188/article/details/89684440