package eVVM.apk.common; import com.gyf.barlibrary.ImmersionBar; import com.hjq.base.BaseLazyFragment; public abstract class UILazyFragment extends BaseLazyFragment { private ImmersionBar mImmersionBar; // 状态栏沉浸 @Override protected void initFragment() { initImmersion(); super.initFragment(); } /** * 初始化沉浸式 */ protected void initImmersion() { // 初始化沉浸式状态栏 if (isStatusBarEnabled()) { statusBarConfig().init(); // 设置标题栏 if (getTitleId() > 0) { ImmersionBar.setTitleBar(mActivity, findViewById(getTitleId())); } } } /** * 是否在Fragment使用沉浸式 */ public boolean isStatusBarEnabled() { return false; } /** * 获取状态栏沉浸的配置对象 */ protected ImmersionBar getStatusBarConfig() { return mImmersionBar; } /** * 初始化沉浸式 */ private ImmersionBar statusBarConfig() { //在BaseActivity里初始化 mImmersionBar = ImmersionBar.with(this) .statusBarDarkFont(statusBarDarkFont()) //默认状态栏字体颜色为黑色 .keyboardEnable(true); //解决软键盘与底部输入框冲突问题,默认为false,还有一个重载方法,可以指定软键盘mode return mImmersionBar; } /** * 获取状态栏字体颜色 */ protected boolean statusBarDarkFont() { //返回true表示黑色字体 return true; } @Override public void onDestroy() { super.onDestroy(); if (mImmersionBar != null) mImmersionBar.destroy(); } @Override public void setUserVisibleHint(boolean isVisibleToUser) { super.setUserVisibleHint(isVisibleToUser); if (isVisibleToUser && isStatusBarEnabled() && isLazyLoad()) { // 重新初始化状态栏 statusBarConfig().init(); } } }