package com.moral.screen.base;
|
|
import android.os.Bundle;
|
import android.support.annotation.Nullable;
|
import android.support.v4.app.Fragment;
|
import android.util.SparseArray;
|
import android.view.LayoutInflater;
|
import android.view.View;
|
import android.view.ViewGroup;
|
|
import com.moral.andbrickslib.utils.ToastUtils;
|
import com.moral.andbrickslib.utils.dialog.SweetDialogUtils;
|
import com.moral.andbrickslib.views.EmptyLayout;
|
import com.moral.andbrickslib.views.SweetAlert.SweetAlertDialog;
|
import com.moral.screen.R;
|
import com.moral.screen.httputils.HttpUtils;
|
|
|
/**
|
* Fragment基类
|
* Created by haijiang on 2017/5/2.
|
*/
|
public abstract class BaseFragment extends Fragment implements View.OnClickListener {
|
/**
|
* 多状态界面
|
*/
|
protected EmptyLayout mEmptyLayout;
|
/**
|
* 加载进度条
|
*/
|
protected SweetAlertDialog progressDialog;
|
/**
|
* 吐司工具类
|
*/
|
protected ToastUtils mToatUtils;
|
protected HttpUtils mHttpUtils;
|
|
|
protected View convertView;
|
private SparseArray<View> mViews;
|
|
protected abstract int getLayoutId();
|
|
protected abstract void initViews();
|
|
protected abstract void initListener();
|
|
protected abstract void initData();
|
|
protected abstract void processClick(View v);
|
|
@Nullable
|
@Override
|
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
|
if (convertView == null) {
|
progressDialog = SweetDialogUtils.showProgressDialog(getActivity(),"正在努力加载...", R.color.colorAccent);
|
mToatUtils = new ToastUtils(getActivity());
|
mHttpUtils = new HttpUtils(getActivity());
|
mViews = new SparseArray<>();
|
convertView = inflater.inflate(getLayoutId(), null);
|
initViews();
|
initData();
|
initListener();
|
} else {
|
ViewGroup parent = (ViewGroup) convertView.getParent();
|
if (parent != null) {
|
parent.removeView(convertView);
|
}
|
}
|
return convertView;
|
}
|
|
public <E extends View> E findView(int viewId) {
|
if (convertView != null) {
|
E view = (E) mViews.get(viewId);
|
if (view == null) {
|
view = (E) convertView.findViewById(viewId);
|
mViews.put(viewId, view);
|
}
|
return view;
|
}
|
return null;
|
}
|
|
@Override
|
public void onViewStateRestored(@Nullable Bundle savedInstanceState) {
|
try{
|
super.onViewStateRestored(savedInstanceState);
|
}catch(Exception e){}
|
}
|
|
@Override
|
public void onResume() {
|
super.onResume();
|
}
|
|
@Override
|
public void onPause() {
|
super.onPause();
|
}
|
|
@Override
|
public void onDestroyView() {
|
super.onDestroyView();
|
}
|
|
@Override
|
public void onClick(View v) {
|
processClick(v);
|
}
|
|
/**
|
* 初始化加载界面
|
*/
|
protected void initMulitiStatusView(int empty_layout) {
|
mEmptyLayout = findView(empty_layout);
|
/**
|
* 错误页面刷新
|
*/
|
mEmptyLayout.setOnLayoutClickListener(new View.OnClickListener() {
|
@Override
|
public void onClick(View v) {
|
setLoadingView();
|
onErrorPagerClick();
|
}
|
});
|
}
|
|
|
/**
|
* 界面加载出错重载
|
*/
|
protected abstract void onErrorPagerClick();
|
|
/**
|
* 空界面
|
*/
|
public void setEmptyView() {
|
if(mEmptyLayout == null){
|
return;
|
}
|
mEmptyLayout.setErrorType(EmptyLayout.NODATA);
|
}
|
|
/**
|
* 错误界面
|
*/
|
public void setErrorView() {
|
if(mEmptyLayout == null){
|
return;
|
}
|
mEmptyLayout.setErrorType(EmptyLayout.NETWORK_ERROR);
|
}
|
|
/**
|
* 我的界面
|
*/
|
public void setNormalView() {
|
if(mEmptyLayout == null){
|
return;
|
}
|
mEmptyLayout.dismiss();
|
}
|
|
/**
|
* 加载中界面
|
*/
|
public void setLoadingView() {
|
if(mEmptyLayout == null){
|
return;
|
}
|
mEmptyLayout.setErrorType(EmptyLayout.NETWORK_LOADING);
|
}
|
|
}
|