package cn.com.basic.face.base;
|
|
import android.content.Intent;
|
import android.os.Bundle;
|
import android.support.annotation.NonNull;
|
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.lidroid.xutils.ViewUtils;
|
|
/**
|
* Created by zhangbo on 2017/2/15.
|
*/
|
|
public abstract class BaseFragment extends Fragment{
|
private View view;
|
|
public View getView() {
|
return view;
|
}
|
|
@Nullable
|
@Override
|
public View onCreateView(LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {
|
if (this.view == null) {
|
this.view = inflater.inflate(this.getLayoutId(), container, false);
|
}
|
if (this.view.getParent() != null) {
|
ViewGroup parent = (ViewGroup) this.view.getParent();
|
parent.removeView(this.view);
|
}
|
ViewUtils.inject(this, this.view);
|
this.initViews(this.view, savedInstanceState);
|
this.initToolbar(savedInstanceState);
|
this.initListeners();
|
this.initData();
|
return this.view;
|
}
|
|
/**
|
* 跳转到指定的Activity
|
*
|
* @param targetActivity 要跳转的目标Activity
|
*/
|
protected final void startActivity(@NonNull Class<?> targetActivity) {
|
startActivity(new Intent(getActivity(), targetActivity));
|
}
|
|
/**
|
* 跳转到指定的Activity
|
*
|
* @param data Activity之间传递数据,Intent的Extra key为Constant.EXTRA_NAME.DATA
|
* @param targetActivity 要跳转的目标Activity
|
*/
|
protected final void startActivity(@NonNull String name, @NonNull Bundle data, @NonNull Class<?> targetActivity) {
|
final Intent intent = new Intent();
|
intent.putExtra(name, data);
|
intent.setClass(getActivity(), targetActivity);
|
startActivity(intent);
|
}
|
|
protected abstract int getLayoutId();
|
|
protected void initViews(View view, Bundle savedInstanceState) {};
|
|
protected void initToolbar(Bundle savedInstanceState){};
|
|
protected void initListeners() {};
|
|
protected void initData() {};
|
}
|