美文网首页
状态栏自动透明,黑色字体,不影响输入框顶起来布局

状态栏自动透明,黑色字体,不影响输入框顶起来布局

作者: Aiden_9 | 来源:发表于2018-09-20 11:39 被阅读0次
    利用一个第三方库实现透明,解决了很多异常情况

    地址:https://github.com/gyf-dev/ImmersionBar

        implementation 'com.gyf.barlibrary:barlibrary:2.3.0'
    
    
    1. 在baseActivity里onCreate()方法里初始化
    mImmersionBar = ImmersionBar.with(this);
            mImmersionBar
                    .transparentStatusBar()  //透明状态栏,不写默认透明色
                    .statusBarDarkFont(true)   //状态栏字体是深色,不写默认为亮色
                    .flymeOSStatusBarFontColor(R.color.title_bar_txt)  //修改flyme OS状态栏字体颜色
                    .keyboardEnable(false)
                    .navigationBarEnable(false);
            if ((!"Xiaomi".equalsIgnoreCase(getManufacturer())&&
                    (!"ZTE".equalsIgnoreCase(getManufacturer())))
                    &&(!"MEIZU".equalsIgnoreCase(getManufacturer()))) {
                mImmersionBar.statusBarAlpha(0.2f);  //状态栏透明度,不写默认0.0f
            }
            KLog.i("手机型号:"+getManufacturer());
            mImmersionBar.init();
    
    1. 在baseactivity的onDestory()里
    if (mImmersionBar != null)
                mImmersionBar.destroy();  //必须调用该方法,防止内存泄漏,不调用该方法,如果界面bar发生改变,在不关闭app的情况下,退出此界面再进入将记忆最后一次bar改变的状态
            
    
    1. 然后其他activity继承即可,布局里别忘了
    android:fitsSystemWindows="true"
    
    1. 然后这个库有个问题,就是页面根布局是RelativeLayout且有输入框的情况下,输入法弹出时会把底部的布局顶上来,或者会多一块白色黑色布局
    2. 解决这个问题,此活动就不能使用这个工具做透明工具栏了,单独设置透明、白色状态栏黑字体样式了。可以用SystemBarTint这个工具透明,设置颜色。
    3. 设置字体黑色可以使用下方代码:
    private void initDarkFont() {
            if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.KITKAT) {
                int uiFlags = View.SYSTEM_UI_FLAG_LAYOUT_STABLE;  //防止系统栏隐藏时内容区域大小发生变化
                if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP && !OSUtils.isEMUI3_1()) {
                    uiFlags = View.SYSTEM_UI_FLAG_LIGHT_STATUS_BAR; //android 6.0以上设置状态栏字体为暗色
                }
                getWindow().getDecorView().setSystemUiVisibility(uiFlags);
            }
        }
    

    这样就把所有页面都能正确透明。

    相关文章

      网友评论

          本文标题:状态栏自动透明,黑色字体,不影响输入框顶起来布局

          本文链接:https://www.haomeiwen.com/subject/lbignftx.html