如何去掉(隐藏)系统的StatusBar(状态栏)

时间:2023-03-08 23:50:16
如何去掉(隐藏)系统的StatusBar(状态栏)
     在定制TV版本中,经常需要去掉StatusBar的需求,那么如何更好更方便的去掉StatusBar呢? 
     StatusBar是Android系统中重要的组成部分,可以看到一些提醒图标已经通过它可以下拉出通知提醒和快捷设置,整个的代码在工程SystemUI中。
     一拿到最简单方法当然是直接删除SystemUI.apk,但是如果真的这样做的话,系统将会无法显示墙纸。这是因为ImageWallpaper这个显示墙纸的服务也在SystemUI中。参考SystemUI的manifest.xml文件,里面还有好多服务需要运行,所以直接去掉这个apk的做法肯定是不行的。
     如果不能去掉只能去看真正的StatusBar的代码在哪里了,在整个里面主要涉及到三个类:
如何去掉(隐藏)系统的StatusBar(状态栏)
如何去掉(隐藏)系统的StatusBar(状态栏)
     这三个类很有意思的相互关联,看类的名称可以看出,一个是控制类(PhoneStatusBar),另外两个是界面类。其中 StatusBarWindowView是整个View,包含状态栏(PhoneStatusbarView)和底下的展开(PannelHodler),通过super_status_bar.xml,我们可以看出之际的结构如下:
如何去掉(隐藏)系统的StatusBar(状态栏)如何去掉(隐藏)系统的StatusBar(状态栏)
     再参考代码,我们可以画出整个操作StatusBar的流程如下:
如何去掉(隐藏)系统的StatusBar(状态栏)
     如何去掉(隐藏)系统的StatusBar(状态栏)
     回到刚才我们的问题,如果要屏蔽StatusBar,我们只要不让StaatusBarWindowView 显示就可以了,所以我们只要找到
    代码如何去掉(隐藏)系统的StatusBar(状态栏)如何去掉(隐藏)系统的StatusBar(状态栏)
               mStatusBarWindow.setVisibility(View.GONE);
     至此,对于StatusBar的分析结束。