BaseFragment备忘札记
BaseFragment备忘笔记
public abstract class BaseFragment extends Fragment{ protected Context context; private boolean isInitViews=false; private boolean isVisibleToUser=false; protected boolean isLoaded=false; @Override public void onAttach(Activity activity) { // TODO Auto-generated method stub super.onAttach(activity); context = activity.getBaseContext(); } @Override public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { // TODO Auto-generated method stub return inflater.inflate(getLayoutResId(), null); } @Override public void onViewCreated(View view, Bundle savedInstanceState) { // TODO Auto-generated method stub super.onViewCreated(view, savedInstanceState); findViews(view); isInitViews=true; fetchData(false); } protected abstract int getLayoutResId(); protected abstract void findViews(View layoutView); protected abstract void reqRemoteDatas(); public void fetchData(boolean _isForceFetchData){ if((_isForceFetchData || !isLoaded )&& (isInitViews && isVisibleToUser)){ reqRemoteDatas(); isLoaded=true; } } @Override public void setUserVisibleHint(boolean isVisibleToUser) { super.setUserVisibleHint(isVisibleToUser); this.isVisibleToUser=isVisibleToUser; fetchData(false); } }