public abstract class BaseFragment<P extends BasePresenter> extends Fragment { private View view; protected P mPresenter; public boolean isViewCreated; public boolean isUIVisible; public Toast toast; @SuppressLint("NewApi") @Nullable @Override public View onCreateView(LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) { view = LayoutInflater.from(container.getContext()).inflate(getFragmentLayout(), container, false); //初始化屏幕适配 AutoUtils.auto(view); ButterKnife.bind(this, view); toast = new Toast(getActivity()); if (onCreatePresenter() != null) { mPresenter = onCreatePresenter(); } return view; } /** * 返回布局文件 * * @return */ protected abstract int getFragmentLayout(); protected abstract void FragmentInitData(); public void showToast(String msg) { if (toast != null) { toast.cancel(); } ShowUtils.Toastshort(getActivity(), msg); } private ProgressDialog dialog; public void showLoading() { if (dialog != null && dialog.isShowing()) return; dialog = new ProgressDialog(getActivity()); dialog.requestWindowFeature(Window.FEATURE_NO_TITLE); dialog.setCanceledOnTouchOutside(false); dialog.setProgressStyle(ProgressDialog.STYLE_SPINNER); dialog.setMessage(getString(R.string.loading)); dialog.show(); // handler.sendEmptyMessageDelayed(0, 5000); } public static int MIN_DELAY_TIME = 1000; // 两次点击间隔不能少于1000ms private static long lastClickTime; public static boolean isFastClick() { boolean flag = true; long currentClickTime = System.currentTimeMillis(); if ((currentClickTime - lastClickTime) >= MIN_DELAY_TIME) { flag = false; } lastClickTime = currentClickTime; return flag; } public void dismissLoading() { if (dialog != null && dialog.isShowing()) { dialog.dismiss(); } } @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); Log.d(getClass().getSimpleName(), getClass().getSimpleName() + ":onCreate"); } @Override public void onActivityCreated(Bundle savedInstanceState) { super.onActivityCreated(savedInstanceState); Log.d(getClass().getSimpleName(), ":onActivityCreated"); isViewCreated = true; FragmentInitData(); } @Override public void onStart() { super.onStart(); Log.d(getClass().getSimpleName(), ":onStart"); } @Override public void onPause() { super.onPause(); Log.d(getClass().getSimpleName(), ":onPause"); } @Override public void onStop() { super.onStop(); Log.d(getClass().getSimpleName(), ":onStop"); } @Override public void onDestroyView() { super.onDestroyView(); Log.d(getClass().getSimpleName(), ":onDestroyView"); } @Override public void onDestroy() { super.onDestroy(); ButterKnife.unbind(this); if (mPresenter != null) { mPresenter.unSubscribe(); } Log.d(getClass().getSimpleName(), ":onDestroy"); } protected abstract P onCreatePresenter(); }
BaseFragment实用篇
最新推荐文章于 2022-06-04 20:30:00 发布