使用ViewPager+Fragment
1.封装BaseFragment
2.子Fragment继承,使用
解决ViewPager滑动的时候,滑动到那个界面,就加载那个界面,如果已经加载完毕的,就直接显示不需要再次加载了
import android.support.v4.app.Fragment;
public abstract class BaseFragment extends Fragment {
/** Fragment当前状态是否可见 */
protected boolean isVisible;
@Override
public void setUserVisibleHint(boolean isVisibleToUser) {
super.setUserVisibleHint(isVisibleToUser);
if(getUserVisibleHint()) {
isVisible = true;
onVisible();
} else {
isVisible = false;
onInvisible();
}
}
/**
* 可见
*/
protected void onVisible() {
lazyLoad();
}
/**
* 不可见
*/
protected void onInvisible() {
}
/**
* 延迟加载
* 子类必须重写此方法
*/
protected abstract void lazyLoad();
}
子Fragment继承
/** 标志位,标志已经初始化完成 */
private boolean isPrepared;
@Override
protected void lazyLoad() {
if(!isPrepared || !isVisible) {
Log.v("dalongs","加载过了,直接显示");
return;
}else{
if(dynamicList!=null&&dynamicList.size()<1) {
Log.v("dalongs", "重新加载数据");
showLoadView();
initData();
}
}
}
/*
*Fragment初始化View的时候
*/
public void oncreateview(....){
isPrepared=true;//
lazyLoad();
}