最近做的项目,在小米手机上运行,设置全透明没有问题,但是在华为手机上,设置了并没有效果,最终找到解决方案,如下代码:

    @RequiresApi(api = Build.VERSION_CODES.LOLLIPOP)    void translucentStatusBar(Activity activity, boolean hideStatusBarBackground) {        Window window = activity.getWindow();        //添加Flag把状态栏设为可绘制模式        window.addFlags(WindowManager.LayoutParams.FLAG_DRAWS_SYSTEM_BAR_BACKGROUNDS);        if (hideStatusBarBackground) {            //如果为全透明模式,取消设置Window半透明的Flag            window.clearFlags(WindowManager.LayoutParams.FLAG_TRANSLUCENT_STATUS);            //设置状态栏为透明            window.setStatusBarColor(Color.TRANSPARENT);            //设置window的状态栏不可见            window.getDecorView().setSystemUiVisibility(View.SYSTEM_UI_FLAG_VISIBLE);//            window.getDecorView().setSystemUiVisibility(View.SYSTEM_UI_FLAG_LAYOUT_STABLE | View.SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN);        } else {            window.clearFlags(WindowManager.LayoutParams.FLAG_TRANSLUCENT_STATUS);            window.getDecorView().setSystemUiVisibility(View.SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN                    | View.SYSTEM_UI_FLAG_LAYOUT_STABLE);            window.addFlags(WindowManager.LayoutParams.FLAG_DRAWS_SYSTEM_BAR_BACKGROUNDS);            window.setStatusBarColor(Color.TRANSPARENT);        }        //view不根据系统窗口来调整自己的布局        ViewGroup mContentView = (ViewGroup) window.findViewById(Window.ID_ANDROID_CONTENT);        View mChildView = mContentView.getChildAt(0);        if (mChildView != null) {            ViewCompat.setFitsSystemWindows(mChildView, false);            ViewCompat.requestApplyInsets(mChildView);        }    }

更多相关文章

  1. No.11 使用firewall配置的防火墙策略的生效模式
  2. Android(安卓)Canvas设置绘画时重叠部分的处理模式【含效果图】
  3. Android(安卓)Activity
  4. Android底部导航BottomNavigationBar的基本使用(谷歌推荐)
  5. Android(安卓)四大组件之Activity(Activity/Fragment)
  6. 【Android】 adb shell 下 setting 指令
  7. Android(安卓)Service之onStartCommand方法研究
  8. 三行代码实现白天夜间模式流畅切换的实现库
  9. Android(安卓)插件化分析(2)- 动态代理

随机推荐

  1. InnoDB存储引擎简介
  2. 再分享几个docker小技巧
  3. PHP实战: 实现数据的分页显示和编辑,删除
  4. js:值传递引用传递、结构赋值、流程控制
  5. 2021-2-28
  6. IntelliJ IDEA 激活码 2021.02.28日更
  7. Mysql5.7的varchar类型字段建索引竟然失
  8. 给Mysql服务添加防火墙策略,就这么简单
  9. Linux系统强大的查找命令find用法
  10. 生产系统数据丢失恢复案例