1. 预加载viewpager.setOffscreenPageLimit(2);,默认是预加载1,可以结合懒加载使用。
如果希望进入viewpager,Fragment只加载一次,再次滑动不需加载(只有退出Activity),
可以重写viewpager adapter的getItem,去掉super
2.懒加载
publicabstractclassLazyFragmentextendsFragment{
protectedbooleanisVisible;
/**
*在这里实现Fragment数据的缓加载.
*@paramisVisibleToUser
*/
@Override
publicvoidsetUserVisibleHint(booleanisVisibleToUser){
super.setUserVisibleHint(isVisibleToUser);
if(getUserVisibleHint()){
isVisible=true;
onVisible();
}else{
isVisible=false;
onInvisible();
}
}
protectedvoidonVisible(){
lazyLoad();
}
protectedabstractvoidlazyLoad();
protectedvoidonInvisible(){}
}
publicclassOpenResultFragmentextendsLazyFragment{
//标志位,标志已经初始化完成。
privatebooleanisPrepared;
@Override
publicViewonCreateView(LayoutInflaterinflater,ViewGroupcontainer,BundlesavedInstanceState){
Log.d(LOG_TAG,"onCreateView");
Viewview=inflater.inflate(R.layout.fragment_open_result,container,false);
//XXX初始化view的各控件
isPrepared=true;
lazyLoad();
returnview;
}
@Override
protectedvoidlazyLoad(){
if(!isPrepared||!isVisible){
return;
}
//填充各控件的数据
}
}