gyf-dev / ImmersionBar

android 4.4以上沉浸式状态栏和沉浸式导航栏管理,适配横竖屏切换、刘海屏、软键盘弹出等问题,可以修改状态栏字体颜色和导航栏图标颜色,以及不可修改字体颜色手机的适配,适用于Activity、Fragment、DialogFragment、Dialog,PopupWindow,一句代码轻松实现,以及对bar的其他设置,详见README。简书请参考:http://www.jianshu.com/p/2a884e211a62
Apache License 2.0
11.31k stars 1.89k forks source link

dialogFragment导致的下层状态栏无法隐藏 #460

Open DaveBoy opened 4 years ago

DaveBoy commented 4 years ago

UI:在Activity隐藏状态栏和导航栏,然后显示一个dialogfragment(也隐藏状态栏和导航栏) 结果:状态栏和导航栏隐藏了 但是会显示个占位矩形(如果状态栏和导航栏有颜色) 代码: activity:

    @Override
    protected void initImmersionBar() {
        super.initImmersionBar();
        ImmersionBar.with(this)
                .fitsSystemWindows(true)
                .navigationBarColor(R.color.btn3)
                .statusBarColor(R.color.btn3).init();
    }

    @Override
    public void onConfigurationChanged(Configuration newConfig) {
        super.onConfigurationChanged(newConfig);
        Integer[] widthAndHeight = Utils.getWidthAndHeight(getWindow());
        if (newConfig.orientation == Configuration.ORIENTATION_LANDSCAPE){
            ImmersionBar.with(this)
                    .fitsSystemWindows(false)
                    .navigationBarColor(R.color.btn3)
                    .statusBarColor(R.color.btn3)
                    .hideBar(BarHide.FLAG_HIDE_BAR)
                    .init();
        }else{
            ImmersionBar.with(this)
                    .fitsSystemWindows(true)
                    .navigationBarColor(R.color.btn3)
                    .statusBarColor(R.color.btn3)
                    .hideBar(BarHide.FLAG_SHOW_BAR)
                    .init();
        }
}

dialogfragment:

@Override
    protected void initImmersionBar() {
        super.initImmersionBar();
        ImmersionBar.with(this)
                .hideBar(BarHide.FLAG_HIDE_BAR)
                .init();
    }
DaveBoy commented 4 years ago

1931594024071_ pic 1941594024072_ pic 1951594024073_ pic

DaveBoy commented 4 years ago

3.0版本,android 7 华为