// Path: app/src/main/java/com/andfast/app/view/base/BaseFragment.java
// public abstract class BaseFragment extends Fragment {
//     private static final String TAG = "BaseFragment";
//     protected Context mContext;
//     protected View mRoot;
//     protected Bundle mBundle;
//     protected LayoutInflater mInflater;
// 
//     @Override
//     public void onAttach(Context context) {
//         super.onAttach(context);
//         mContext = context;
//     }
// 
//     @Override
//     public void onDetach() {
//         super.onDetach();
//         mContext = null;
//     }
// 
//     @Override
//     public void onCreate(@Nullable Bundle savedInstanceState) {
//         super.onCreate(savedInstanceState);
//         mBundle = getArguments();
//         initBundle(mBundle);
//     }
// 
//     @Override
//     public View onCreateView(LayoutInflater inflater, ViewGroup container,
//                              Bundle savedInstanceState) {
//         if (mRoot != null) {
//             ViewGroup parent = (ViewGroup) mRoot.getParent();
//             if (parent != null)
//                 parent.removeView(mRoot);
//         } else {
//             mRoot = inflater.inflate(getLayoutId(), container, false);
//             mInflater = inflater;
//             // Do something
//             onBindViewBefore(mRoot);
//             // Get savedInstanceState
//             if (savedInstanceState != null)
//                 onRestartInstance(savedInstanceState);
//             // Init
//             initWidget(mRoot);
//             initData();
//         }
//         return mRoot;
//     }
// 
//     @Override
//     public void onHiddenChanged(boolean hidden) {
//         super.onHiddenChanged(hidden);
//         if (!hidden) {
//             showFragmet();
//         } else {
//             hiddenFragment();
//         }
//     }
// 
//     @Override
//     public void setUserVisibleHint(boolean isVisibleToUser) {
//         super.setUserVisibleHint(isVisibleToUser);
//         if (isVisibleToUser) {
//             showFragmet();
//         } else {
//             hiddenFragment();
//         }
//     }
// 
//     protected void showFragmet() {}
// 
//     protected  void hiddenFragment(){}
// 
//     protected abstract int getLayoutId();
// 
//     protected void onBindViewBefore(View root) {
//     }
// 
//     protected void initBundle(Bundle bundle) {
// 
//     }
// 
//     protected void initWidget(View root) {
// 
//     }
// 
//     protected void initData() {
// 
//     }
// 
//     protected void onRestartInstance(Bundle bundle) {
// 
//     }
// 
//     private boolean isEventBusRegisted(Object subscribe) {
//         return EventBus.getDefault().isRegistered(subscribe);
//     }
// 
//     public void registerEventBus(Object subscribe) {
//         if (!isEventBusRegisted(subscribe)) {
//             EventBus.getDefault().register(subscribe);
//         }
//     }
// 
//     public void unregisterEventBus(Object subscribe) {
//         if (isEventBusRegisted(subscribe)) {
//             EventBus.getDefault().unregister(subscribe);
//         }
//     }
// 
//     protected <A extends Activity> A getParentActivity(){
//         return (A) getActivity();
//     }
// 
//     protected <V extends View> V findView(int viewId) {
//         return (V) mRoot.findViewById(viewId);
//     }
// }


import android.support.v4.app.Fragment;
import android.support.v4.app.FragmentManager;
import android.support.v4.app.FragmentTransaction;
import com.andfast.app.R;
import com.andfast.app.view.base.BaseFragment;
import java.util.List;
package com.andfast.app.util;




/**
 *fragment管理类
 **/
public class FragmentUtils {

    public static void replace(FragmentManager manager, int containerId, Fragment fragment, boolean addBackStack, String tag) {
        FragmentTransaction transaction = manager.beginTransaction();
        if (addBackStack) {
            transaction.addToBackStack(tag);
        }
        transaction.replace(containerId, fragment, tag).commitAllowingStateLoss();
    }

    public static void add(FragmentManager manager, int containerId, Fragment fragment, boolean addBackStack, String tag) {
        FragmentTransaction transaction = manager.beginTransaction();
        if (addBackStack) {
            transaction.addToBackStack(tag);
        }
        transaction.add(containerId, fragment, tag).commitAllowingStateLoss();
    }

// Path: app/src/main/java/com/andfast/app/view/base/BaseFragment.java
// public abstract class BaseFragment extends Fragment {
//     private static final String TAG = "BaseFragment";
//     protected Context mContext;
//     protected View mRoot;
//     protected Bundle mBundle;
//     protected LayoutInflater mInflater;
// 
//     @Override
//     public void onAttach(Context context) {
//         super.onAttach(context);
//         mContext = context;
//     }
// 
//     @Override
//     public void onDetach() {
//         super.onDetach();
//         mContext = null;
//     }
// 
//     @Override
//     public void onCreate(@Nullable Bundle savedInstanceState) {
//         super.onCreate(savedInstanceState);
//         mBundle = getArguments();
//         initBundle(mBundle);
//     }
// 
//     @Override
//     public View onCreateView(LayoutInflater inflater, ViewGroup container,
//                              Bundle savedInstanceState) {
//         if (mRoot != null) {
//             ViewGroup parent = (ViewGroup) mRoot.getParent();
//             if (parent != null)
//                 parent.removeView(mRoot);
//         } else {
//             mRoot = inflater.inflate(getLayoutId(), container, false);
//             mInflater = inflater;
//             // Do something
//             onBindViewBefore(mRoot);
//             // Get savedInstanceState
//             if (savedInstanceState != null)
//                 onRestartInstance(savedInstanceState);
//             // Init
//             initWidget(mRoot);
//             initData();
//         }
//         return mRoot;
//     }
// 
//     @Override
//     public void onHiddenChanged(boolean hidden) {
//         super.onHiddenChanged(hidden);
//         if (!hidden) {
//             showFragmet();
//         } else {
//             hiddenFragment();
//         }
//     }
// 
//     @Override
//     public void setUserVisibleHint(boolean isVisibleToUser) {
//         super.setUserVisibleHint(isVisibleToUser);
//         if (isVisibleToUser) {
//             showFragmet();
//         } else {
//             hiddenFragment();
//         }
//     }
// 
//     protected void showFragmet() {}
// 
//     protected  void hiddenFragment(){}
// 
//     protected abstract int getLayoutId();
// 
//     protected void onBindViewBefore(View root) {
//     }
// 
//     protected void initBundle(Bundle bundle) {
// 
//     }
// 
//     protected void initWidget(View root) {
// 
//     }
// 
//     protected void initData() {
// 
//     }
// 
//     protected void onRestartInstance(Bundle bundle) {
// 
//     }
// 
//     private boolean isEventBusRegisted(Object subscribe) {
//         return EventBus.getDefault().isRegistered(subscribe);
//     }
// 
//     public void registerEventBus(Object subscribe) {
//         if (!isEventBusRegisted(subscribe)) {
//             EventBus.getDefault().register(subscribe);
//         }
//     }
// 
//     public void unregisterEventBus(Object subscribe) {
//         if (isEventBusRegisted(subscribe)) {
//             EventBus.getDefault().unregister(subscribe);
//         }
//     }
// 
//     protected <A extends Activity> A getParentActivity(){
//         return (A) getActivity();
//     }
// 
//     protected <V extends View> V findView(int viewId) {
//         return (V) mRoot.findViewById(viewId);
//     }
// }


// Path: app/src/main/java/com/andfast/app/util/FragmentUtils.java
import android.support.v4.app.Fragment;
import android.support.v4.app.FragmentManager;
import android.support.v4.app.FragmentTransaction;
import com.andfast.app.R;
import com.andfast.app.view.base.BaseFragment;
import java.util.List;

package com.andfast.app.util;




/**
 *fragment管理类
 **/
public class FragmentUtils {

    public static void replace(FragmentManager manager, int containerId, Fragment fragment, boolean addBackStack, String tag) {
        FragmentTransaction transaction = manager.beginTransaction();
        if (addBackStack) {
            transaction.addToBackStack(tag);
        }
        transaction.replace(containerId, fragment, tag).commitAllowingStateLoss();
    }

    public static void add(FragmentManager manager, int containerId, Fragment fragment, boolean addBackStack, String tag) {
        FragmentTransaction transaction = manager.beginTransaction();
        if (addBackStack) {
            transaction.addToBackStack(tag);
        }
        transaction.add(containerId, fragment, tag).commitAllowingStateLoss();
    }

    public static void addMultiple(FragmentManager manager, int containerId, int showPosition, BaseFragment... fragments) {