package eVVM.apk.common; import android.graphics.drawable.Drawable; import android.os.Bundle; import android.os.Handler; import android.os.Looper; import android.os.SystemClock; import android.support.annotation.DrawableRes; import android.support.annotation.NonNull; import android.support.annotation.Nullable; import android.support.annotation.StringRes; import android.util.Log; import android.view.Gravity; import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; import com.hjq.bar.TitleBar; import com.hjq.base.BaseDialog; import com.hjq.dialog.MenuDialog; import com.hjq.toast.ToastUtils; import java.util.ArrayList; import java.util.List; import butterknife.ButterKnife; import butterknife.Unbinder; import eVVM.apk.helper.DebugUtils; import eVVM.apk.other.EventBusManager; import eVVM.apk.other.StatusManager; public abstract class MyLazyFragment extends UILazyFragment { private Unbinder mButterKnife; // View注解 private static final Handler FHANDLER = new Handler(Looper.getMainLooper()); @Override public View onCreateView(@NonNull LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { View view = super.onCreateView(inflater, container, savedInstanceState); mButterKnife = ButterKnife.bind(this, view); return view; } @Override protected void initFragment() { super.initFragment(); EventBusManager.register(this); } @Override public void onDestroy() { super.onDestroy(); if (mButterKnife != null) { mButterKnife.unbind(); } EventBusManager.unregister(this); } @Nullable public TitleBar getTitleBar() { if (getTitleId() > 0 && findViewById(getTitleId()) instanceof TitleBar) { return findViewById(getTitleId()); } return null; } private List toastList = new ArrayList<>(); /** * 显示吐司 */ public void toast(CharSequence s) { //ToastUtils.show(s); toastList.clear(); toastList.add(s.toString()); final BaseDialog show = new MenuDialog.Builder(getActivity()) .setCancel(null) // 设置 null 表示不显示取消按钮 .setAutoDismiss(false) // 设置点击按钮后不关闭对话框 .setList(toastList) .setGravity(Gravity.BOTTOM) .setAnimStyle(BaseDialog.AnimStyle.BOTTOM) .show(); postDelayed(new Runnable() { @Override public void run() { show.dismiss(); } }, 2000); } public void toast(int id) { ToastUtils.show(id); } public void toast(Object object) { ToastUtils.show(object); } /** * 延迟执行 */ public final boolean post(Runnable r) { return postDelayed(r, 0); } /** * 延迟一段时间执行 */ public final boolean postDelayed(Runnable r, long delayMillis) { if (delayMillis < 0) { delayMillis = 0; } return postAtTime(r, SystemClock.uptimeMillis() + delayMillis); } /** * 在指定的时间执行 */ public final boolean postAtTime(Runnable r, long uptimeMillis) { return FHANDLER.postAtTime(r, this, uptimeMillis); } @Override public void onDestroyView() { super.onDestroyView(); FHANDLER.removeCallbacksAndMessages(this); } /** * 打印日志 */ public void log(Object object) { if (DebugUtils.isDebug(getBindingActivity())) { Log.v(getClass().getSimpleName(), object != null ? object.toString() : "null"); } } @Override public void onResume() { super.onResume(); //UmengClient.onResume(this); } @Override public void onPause() { // UmengClient.onPause(this); super.onPause(); } private final StatusManager mStatusManager = new StatusManager(); /** * 显示加载中 */ public void showLoading() { mStatusManager.showLoading(getBindingActivity()); } /** * 显示加载完成 */ public void showComplete() { mStatusManager.showComplete(); } /** * 显示空提示 */ public void showEmpty() { mStatusManager.showEmpty(getView()); } /** * 显示错误提示 */ public void showError() { mStatusManager.showError(getView()); } /** * 显示自定义提示 */ public void showLayout(@DrawableRes int iconId, @StringRes int textId) { mStatusManager.showLayout(getView(), iconId, textId); } public void showLayout(Drawable drawable, CharSequence hint) { mStatusManager.showLayout(getView(), drawable, hint); } }