沉浸式状态栏相对于用户的体验是不错的,可以看到很多我们常用的APP(支付宝)其中就使用到了,确实效果不错,后面自己去研究了一波,现在合大家分享一下如何快速的让你的APP提升逼格,废话不多说,上车就是了。
1,首先在你的gradle中添加 compile 'com.gyf.barlibrary:barlibrary:2.2.7'compile ' 做到这你就成功一半了,说出来你敢信吗?
2, public class BaseActivity extends Activity {
private static final String NAVIGATIONBAR_IS_MIN = "navigationbar_is_min";
public ImmersionBar mImmersionBar;
@Override
protected void onCreate(Bundle BundlesavedInstanceState) {
super.onCreate(BundlesavedInstanceState);
if (isImmersionBarEnabled()) {
initImmersionBar();
}
}
protected void initImmersionBar() {
//在BaseActivity里初始化
mImmersionBar = ImmersionBar.with(this);
mImmersionBar.init();
//解决华为emui3.0与3.1手机手动隐藏底部导航栏时,导航栏背景色未被隐藏的问题
if (OSUtils.isEMUI3_1()) {
//第一种
getContentResolver().registerContentObserver(Settings.System.getUriFor
(NAVIGATIONBAR_IS_MIN), true, mNavigationStatusObserver);
//第二种,禁止对导航栏的设置
mImmersionBar.navigationBarEnable(false).init();
}
}
private ContentObserver mNavigationStatusObserver = new ContentObserver(new Handler()) {
@Override
public void onChange(boolean selfChange) {
int navigationBarIsMin = Settings.System.getInt(getContentResolver(),
NAVIGATIONBAR_IS_MIN, 0);
if (navigationBarIsMin == 1) {
//导航键隐藏了
mImmersionBar.transparentNavigationBar().init();
} else {
//导航键显示了
mImmersionBar.navigationBarColor(android.R.color.black) //隐藏前导航栏的颜色
.fullScreen(false)
.init();
}
}
};
//是否可以使用沉浸式
protected boolean isImmersionBarEnabled() {
return true;
}
@Override
protected void onResume() {
super.onResume();
}
@Override
protected void onStart() {
super.onStart();
}
//销毁页面的时候也要一起销毁
@Override
protected void onDestroy() {
super.onDestroy();
if (mImmersionBar != null) {
mImmersionBar.destroy();
}
}
}
最后,就是会有导航栏折叠的问题,这时候不要慌,给你一个最简单的处理方式:
在你的标题栏前面多添加一个LinearLayout,高度为25dp,将布局顶上去。哈哈,我真是机智的少年!!
搞定!!!快去试试,提升逼格啦