public abstract class BaseFragment extends Fragment {
protected boolean isViewInitiated;
protected boolean isVisiableToUser;
protected boolean isDataInitiated;
@Override
public void onCreate(@Nullable Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
}
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
}
@Override
public void onActivityCreated(Bundle savedInstanceState) {
super.onActivityCreated(savedInstanceState);
LogUtils.sf(getClass().getSimpleName() + "onActivityCreated");
isViewInitiated = true;
prepareFetchData();
}
@Override
public void setUserVisibleHint(boolean isVisibleToUser) {
super.setUserVisibleHint(isVisibleToUser);
LogUtils.sf(getClass().getSimpleName() + "setVisiableToUser" + "==" + isVisibleToUser);
this.isVisiableToUser = isVisibleToUser;
prepareFetchData();
}
public abstract void fetchData();
public boolean prepareFetchData() {
boolean b = prepareFetchData(false);
return b;
}
/**
* 是否预加载
*
* @param forceUpdate
* @return
*/
public boolean prepareFetchData(boolean forceUpdate) {
if (isVisiableToUser && isViewInitiated && (!isDataInitiated || forceUpdate)) {
fetchData();
isDataInitiated = true;
return true;
}
return false;
}
}
###接下来在子类实现
/**
* 主动加载数据
*/
@Override
public void fetchData() {
//加载网络数据
}
近期评论