package com.pan.simplepicture.view.fragment;
import android.content.Context;
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.pan.simplepicture.inter.IBase;
import com.pan.simplepicture.presenter.BasePresenter;
import com.pan.simplepicture.view.impl.IBaseView;
import com.umeng.analytics.MobclickAgent;
import butterknife.ButterKnife;
/**
* Created by sysadminl on 2015/12/10.
*/
public abstract class BaseFragment<T extends BasePresenter<IBaseView>> extends Fragment implements IBase {
protected BasePresenter mPresenter;
protected Context mContext;
@Override
public void onCreate(Bundle savedInstanceState) {
mPresenter = getPresenter();
if (mPresenter != null && this instanceof IBaseView) {
mPresenter.attach((IBaseView) this);
}
super.onCreate(savedInstanceState);
}
public void onResume() {
super.onResume();
MobclickAgent.onPageStart(this.getClass().getSimpleName()); //统计页面,"MainScreen"为页面名称,可自定义
}
public void onPause() {
super.onPause();
MobclickAgent.onPageEnd(this.getClass().getSimpleName());
}
protected View mRootView;
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
if (mRootView != null) {
ViewGroup parent = (ViewGroup) mRootView.getParent();
if (parent != null) {
parent.removeView(mRootView);
}
} else {
mRootView = createView(inflater, container, savedInstanceState);
}
mContext = mRootView.getContext();
return mRootView;
}
@Override
public View createView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
View view = inflater.inflate(getContentLayout(), container, false);
ButterKnife.bind(this, view);
return view;
}
@Nullable
@Override
public View getView() {
return mRootView;
}
@Override
public void onActivityCreated(Bundle savedInstanceState) {
super.onActivityCreated(savedInstanceState);
bindView(savedInstanceState);
}
@Override
public void onDestroy() {
if (mPresenter != null && this instanceof IBaseView) {
mPresenter.detachView();
mPresenter = null;
}
mContext = null;
super.onDestroy();
}
}