如何去掉(隐藏)系统的StatusBar(状态栏)
2016-08-25 15:57
218 查看
在定制TV版本中,经常需要去掉StatusBar的需求,那么如何更好更方便的去掉StatusBar呢?
StatusBar是Android系统中重要的组成部分,可以看到一些提醒图标已经通过它可以下拉出通知提醒和快捷设置,整个的代码在工程SystemUI中。
一拿到最简单方法当然是直接删除SystemUI.apk,但是如果真的这样做的话,系统将会无法显示墙纸。这是因为ImageWallpaper这个显示墙纸的服务也在SystemUI中。参考SystemUI的manifest.xml文件,里面还有好多服务需要运行,所以直接去掉这个apk的做法肯定是不行的。
如果不能去掉只能去看真正的StatusBar的代码在哪里了,在整个里面主要涉及到三个类:
这三个类很有意思的相互关联,看类的名称可以看出,一个是控制类(PhoneStatusBar),另外两个是界面类。其中 StatusBarWindowView是整个View,包含状态栏(PhoneStatusbarView)和底下的展开(PannelHodler),通过super_status_bar.xml,我们可以看出之际的结构如下:
:
再参考代码,我们可以画出整个操作StatusBar的流程如下:
回到刚才我们的问题,如果要屏蔽StatusBar,我们只要不让StaatusBarWindowView 显示就可以了,所以我们只要找到
代码
mStatusBarWindow.setVisibility(View.GONE);
至此,对于StatusBar的分析结束。
StatusBar是Android系统中重要的组成部分,可以看到一些提醒图标已经通过它可以下拉出通知提醒和快捷设置,整个的代码在工程SystemUI中。
一拿到最简单方法当然是直接删除SystemUI.apk,但是如果真的这样做的话,系统将会无法显示墙纸。这是因为ImageWallpaper这个显示墙纸的服务也在SystemUI中。参考SystemUI的manifest.xml文件,里面还有好多服务需要运行,所以直接去掉这个apk的做法肯定是不行的。
如果不能去掉只能去看真正的StatusBar的代码在哪里了,在整个里面主要涉及到三个类:
这三个类很有意思的相互关联,看类的名称可以看出,一个是控制类(PhoneStatusBar),另外两个是界面类。其中 StatusBarWindowView是整个View,包含状态栏(PhoneStatusbarView)和底下的展开(PannelHodler),通过super_status_bar.xml,我们可以看出之际的结构如下:
:
再参考代码,我们可以画出整个操作StatusBar的流程如下:
回到刚才我们的问题,如果要屏蔽StatusBar,我们只要不让StaatusBarWindowView 显示就可以了,所以我们只要找到
代码
mStatusBarWindow.setVisibility(View.GONE);
至此,对于StatusBar的分析结束。
相关文章推荐
- 升级到xcode5 ios7系统的状态栏 StatusBar 隐藏 消失了(解决办法)
- Android 6.0 平台(Settings下去掉了日期格式选项),如何更改系统日期默认格式及锁屏界面和下拉状态栏日期格式修改
- android4.0.3 去掉系统状态栏(StatusBar),让所有app程序均是全屏显示
- iOS开发之如何隐藏系统状态栏
- android7.0 以上系统中如何做到状态栏完全透明,即去掉灰色遮罩层。
- xcode5 ios7系统的状态栏 StatusBar 隐藏 消失了(解决办法)
- 如何隐藏系统的顶部状态栏
- MTK 如何去掉隐藏系统APK
- android去掉系统状态栏(StatusBar),让所有app程序均是全屏显示
- 主题 : 升级到xcode5 ios7系统的状态栏 StatusBar 隐藏 消失了(解决办法)
- android去掉系统状态栏(StatusBar),让所有app程序均是全屏显示
- 如何设置隐藏Android应用的标题栏和状态栏
- 去掉状态栏中系统自带的图标的方法
- android-实现仿系统search框的autoCompleteTextView----如何调用系统的隐藏方法
- 如何隐藏滚动条?IE去掉滚动条HTML代码
- 批处理去掉所有目录的隐藏系统只读属性
- android如何调用显示和隐藏系统默认的输入法
- SQLSERVER2000中如何隐藏/显示系统表
- 如何防范黑客入住系统建立隐藏帐户
- 如何显示和隐藏系统托盘(System Tray)