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);
	}
}