package android.marshon.likequanmintv.base; import android.app.Activity; import android.marshon.likequanmintv.di.component.FragmentComponent; import android.marshon.likequanmintv.librarys.mvpbase.BaseView; import android.marshon.likequanmintv.librarys.base.BaseActivity; import android.os.Bundle; import android.support.v4.app.Fragment; import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; import android.widget.ScrollView; import javax.annotation.Nullable; import rx.subscriptions.CompositeSubscription; /** * Created by Marshon.Chen on 2016/6/1. * DESC: */ public abstract class BaseFragment extends Fragment implements BaseView { private View rootView; protected BaseActivity mActivity; protected FragmentComponent mFragmentComponent; //presenter的subscription管理器 protected CompositeSubscription mSubscriptions=new CompositeSubscription(); @Override public void onCreate(@Nullable Bundle savedInstanceState) { super.onCreate(savedInstanceState); } @Nullable @Override public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { int layoutId = getLayoutId(); View inflate = inflater.inflate(layoutId, null); ScrollView scrollView; if (canScroll()){ scrollView = new ScrollView(inflate.getContext()); scrollView.addView(inflate); rootView=scrollView; }else { rootView=inflate; } initView(rootView); return rootView; } @Override public void onResume() { super.onResume(); } @Override public void onPause() { super.onPause(); stopNetWork(); } public void stopNetWork(){ if (mSubscriptions.hasSubscriptions()&&!mSubscriptions.isUnsubscribed()){ mSubscriptions.unsubscribe(); } } private boolean canScroll(){ return false; } @Override public void onAttach(Activity activity) { super.onAttach(activity); mActivity= (BaseActivity) activity; } protected abstract int getLayoutId(); protected abstract void initView(View rootView); public abstract void initData(); protected <T extends View> T find(int viewId) { View view = rootView.findViewById(viewId); return (T) view; } @Override public void showProgress(@Nullable String msg) { mActivity.showProgress(msg); } public void showToast(String msg){ mActivity.showToast(msg); } public void showLongToast(String msg){ // Toast.makeText(APP.getContext(),""+content,Toast.LENGTH_LONG).show(); mActivity.showLongToast(msg); } @Override public void hideProgress() { mActivity.hideProgress(); } @Override public void showAlert(String msg) { mActivity.showAlert(msg); } }