ViewPager+Fragment 预加载问题

ViewPager 默认加载两个fragment 左右各一个 viewPager.setOffscreenPageLimit(1);//其中参数可以设为0或者1,参数小于1时,会默认用1来作为参数,未设置之前,ViewPager会默认加载两个Fragment,左右各1个。

如果要让fragment 只预加载view 不预加载数据  只需要重写 

@Override
public void setUserVisibleHint(boolean isVisibleToUser) {
super.setUserVisibleHint(isVisibleToUser);
if (isVisibleToUser && !mHasLoadedOnce) {  
       //TODO 执行网络数据请求  

       mHasLoadedOnce = true; //页面已经加载过   
   }  
}

注意  setUserVisibleHint()方法 是执行在onActivityCreated()前面的。

当fragment可见的时候 会执行setUserVisibleHint()方法

通过在这个方法中去加载数据,我发现可以一定程度的实现预加载问题,保证了预加载不会加载数据,只会加载Fragment中的VIew,这样就可以保证了VIewPager滑动的流畅性,也保证了只有切换到一个Fragment的时候才去加载数据的目的。



你可能感兴趣的:(ViewPager+Fragment 预加载问题)