1. 預加載viewpager.setOffscreenPageLimit(2);,默認是預加載1,能夠結合懶加載使用。ide
若是但願進入viewpager,Fragment只加載一次,再次滑動不需加載(只有退出Activity),spa
能夠重寫viewpager adapter的getItem,去掉superget
2.懶加載 string
public abstract class LazyFragment extends Fragment { it
protected boolean isVisible; io
/** class
* 在這裏實現Fragment數據的緩加載. fragment
* @param isVisibleToUser im
*/ layout
@Override
public void setUserVisibleHint(boolean isVisibleToUser) {
super.setUserVisibleHint(isVisibleToUser);
if(getUserVisibleHint()) {
isVisible = true;
onVisible();
} else {
isVisible = false;
onInvisible();
}
}
protected void onVisible(){
lazyLoad();
}
protected abstract void lazyLoad();
protected void onInvisible(){}
}
public class OpenResultFragment extends LazyFragment{
// 標誌位,標誌已經初始化完成。
private boolean isPrepared;
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
Log.d(LOG_TAG, "onCreateView");
View view = inflater.inflate(R.layout.fragment_open_result, container, false);
//XXX初始化view的各控件
isPrepared = true;
lazyLoad();
return view;
}
@Override
protected void lazyLoad() {
if(!isPrepared || !isVisible) {
return;
}
//填充各控件的數據
}
}