package com.jumige.android.ui.template.base; import android.os.Bundle; import android.support.annotation.Nullable; import android.support.v4.app.Fragment; import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; import com.jumige.android.common.utils.LayzLog; import com.jumige.android.common.utils.ViewUtil; import com.jumige.android.ui.template.utils.IFragmentLife; import java.util.ArrayList; /** * Fragmeng的基类 * <p>所有的Fragment都要继承于这个Fragment,这个类提供了部分Fragmeng可以使用的方法,如设置View的方法就是getRootViewId()</p> * * */ public class BaseFragment extends Fragment { public static ArrayList<IFragmentLife> mSubscribers = new ArrayList<>(); @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); for (IFragmentLife mFragLife:mSubscribers){ mFragLife.onCreate(this); } LayzLog.d(this.getClass().getSimpleName() + " >>> %s", "onCreate"); } @Override public void onActivityCreated(@Nullable Bundle savedInstanceState) { super.onActivityCreated(savedInstanceState); LayzLog.d(this.getClass().getSimpleName() + ">>> %s", "onActivityCreated"); } @Override public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { super.onCreateView(inflater, container, savedInstanceState); View view = setContentView(inflater); if (view != null) setupViews(view); return view; } protected void setupViews(View view) { } protected View setContentView(LayoutInflater inflater) { if (getRootViewId() >0){ View view = inflater.inflate(getRootViewId(), null); return view; } return null; } protected int getRootViewId() { return -1; } @Override public void onResume() { super.onResume(); for (IFragmentLife mFragLife:mSubscribers){ mFragLife.onResume(this); } LayzLog.d(this.getClass().getSimpleName() + ">>> %s", "onResume"); } @Override public void onPause() { super.onPause(); for (IFragmentLife mFragLife:mSubscribers){ mFragLife.onPause(this); } LayzLog.d(this.getClass().getSimpleName() + ">>> %s", "onPause"); } @Override public void onStart() { super.onStart(); for (IFragmentLife mFragLife:mSubscribers){ mFragLife.onStart(this); } LayzLog.d(this.getClass().getSimpleName() + ">>> %s", "onStart"); } @Override public void onStop() { super.onStop(); for (IFragmentLife mFragLife:mSubscribers){ mFragLife.onStop(this); } LayzLog.d(this.getClass().getSimpleName() + ">>> %s", "onStop"); } @Override public void onDestroy() { super.onDestroy(); for (IFragmentLife mFragLife:mSubscribers){ mFragLife.onDestroy(this); } LayzLog.d(this.getClass().getSimpleName() + ">>> %s", "onDestroy"); } public <T extends View> T v(View v,int id){ return ViewUtil.find(v, id); } /** * Fragment关联的Activity要去继承#BaseActivity * @return */ public BaseActivity getSJBActvity(){ if (getActivity() != null && getActivity() instanceof BaseActivity){ return (BaseActivity) getActivity(); } else{ return null; } } public void setUpTitle(String _title){ BaseActivity mBaseActivity = getSJBActvity(); if(mBaseActivity != null ){ mBaseActivity.setupActionbarWithUp(_title); } } public static void addSubscriber(IFragmentLife _fragmentLife){ mSubscribers.add(_fragmentLife); } }