/**
* 懒加载Fragment,其子类都具有懒加载的能力
*/
public abstract class BaseFragment extends Fragment {
protected View rootView;
private boolean isInitView = false;
private boolean isVisible = false;
@Nullable
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
rootView = inflater.inflate(setContentView(), container, false);
init();
isInitView = true;
isCanLoadData();
return rootView;
}
@Override
public void setUserVisibleHint(boolean isVisibleToUser) {
super.setUserVisibleHint(isVisibleToUser);
//isVisibleToUser这个boolean值表示:该Fragment的UI 用户是否可见,获取该标志记录下来
if(isVisibleToUser){
isVisible = true;
isCanLoadData();
}else{
isVisible = false;
}
}
private void isCanLoadData(){
//所以条件是view初始化完成并且对用户可见
if(isInitView && isVisible ){
lazyLoad();
//防止重复加载数据
isInitView = false;
isVisible = false;
}
}
/**
* 加载页面布局文件
* @return
*/
protected abstract int setContentView();
/**
* 让布局中的view与fragment中的变量建立起映射
*/
protected abstract void init();
/**
* 加载要显示的数据
*/
protected abstract void lazyLoad();
}
boolean netWork = NetWordUtils.isNetWork(this);
if (!netWork){
QueryBuilder<UserEntity> userEntityQueryBuilder = App.getDaoSession().getUserEntityDao().queryBuilder();
UserAdapter adapter=new UserAdapter(this,userEntityQueryBuilder.list());
recycle.setLayoutManager(new LinearLayoutManager(this));
recycle.setAdapter(adapter);
}