package com.lcjian.library; import android.os.Bundle; import android.support.v4.app.Fragment; import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; public abstract class RetainViewFragment extends Fragment { private View mContentView; @Override public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { if (mContentView == null) { mContentView = inflater.inflate(getContentResource(), container, false); onCreateView(mContentView, savedInstanceState); } else { try { ((ViewGroup) mContentView.getParent()).removeView(mContentView); } catch (Exception e) { if (container != null) container.removeView(mContentView); } } return mContentView; } public abstract int getContentResource(); public abstract void onCreateView(View contentView, Bundle savedInstanceState); @Override public void onResume() { super.onResume(); } @Override public void onPause() { super.onPause(); } }