Android解决全屏开发状态栏隐藏问题

文章目录

  • 前言
  • 一、踏入误区
  • 二、解决步骤
  • 总结


前言

近期新接手了一个小项目需要设计全屏页面,也就是不展示页面toolbar以及手机状态栏,就是显示电量手机信息那一栏,下面是解决思路历程。


一、踏入误区

刚开始查阅资料,有说在配置清单改变,也有说在Activity设置xml之前配置全屏的,测试了一下全屏是可以全屏,但是页面高度改变信息栏又出来了 ,而且极不稳定,比如页面设置全屏后,点击页面的输入框高度发生变化,就把状态栏给弹出来了。还想着是输入框事件的问题,错了错了。是方法没找对。

二、解决步骤

代码如下(示例):

    public  void hideStatusBar(Activity activity) {
        if (activity == null) return;
        Window window = activity.getWindow();
        if (window == null) return;
        window.setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN, WindowManager.LayoutParams.FLAG_FULLSCREEN);
        window.getDecorView().setSystemUiVisibility(View.SYSTEM_UI_FLAG_FULLSCREEN | View.SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN | View.SYSTEM_UI_FLAG_LAYOUT_STABLE);
        WindowManager.LayoutParams lp = window.getAttributes();
        if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.P) {
            lp.layoutInDisplayCutoutMode = WindowManager.LayoutParams.LAYOUT_IN_DISPLAY_CUTOUT_MODE_SHORT_EDGES;
        }
        window.setAttributes(lp);
    }

总结

最好在BaseActivity的setContentView之前调用,不用每个页面都设置也不用改配置清单什么的。

你可能感兴趣的:(Android开发问题记录,android)