public static BlankFragment getInstance(String argument) {
Bundle bundle = new Bundle();
bundle.putString("extra", argument);
if (blankFragment == null) {
blankFragment = new BlankFragment();
blankFragment.setArguments(bundle);
}
return blankFragment;
}
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
Log.d(TAG,"onCreateView");
Bundle bundle = getArguments();
if (bundle != null) {
String extra = bundle.getString("extra");
}
return inflater.inflate(R.layout.fragment_blank, container, false);
}
@Override
public void onAttach(Context context) {
super.onAttach(context);
try {
mListener = (OnFragmentSelectedListener) getActivity();
} catch (ClassCastException e) {
throw new ClassCastException("activity must implement OnFragmentSelectedListener");
}
Log.d(TAG, "onAttach");
}
public abstract class LazyFragment extends Fragment {
private boolean isVisible;
private boolean isViewCreated;
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
View view = inflater.inflate(getLayoutID(), container, false);
Log.e("blink","onCreateView");
isViewCreated = true;
return view;
}
@Override
public void setUserVisibleHint(boolean isVisibleToUser) {
super.setUserVisibleHint(isVisibleToUser);
if(getUserVisibleHint()) {
isVisible = true;
loadForData();
} else {
isVisible = false;
onInvisible();
}
if (isViewCreated && isVisible)
loadForUI();
}
protected abstract void onInvisible();
protected abstract void loadForData();
protected abstract void loadForUI();
public abstract int getLayoutID();
}
fragment