在定制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(状态栏)的更多相关文章

  1. 隐藏android系统标题栏和状态栏

    //隐藏系统title requestWindowFeature(Window.FEATURE_NO_TITLE); //隐藏状态栏 getWindow().addFlags(WindowManage ...

  2. Android应用:StatusBar状态栏、NavigationBar虚拟按键栏、ActionBar标题栏、Window屏幕内容区域等的宽高

    一.屏幕中各种栏目以及屏幕的尺寸 当我们需要计算屏幕中一些元素的高度时,或许需要先获取到屏幕或者各种栏目的高度,下面这个类包含了Status bar状态栏,Navigation bar虚拟按键栏,Ac ...

  3. Android之弹出/隐藏系统软键盘

    Android弹出/隐藏系统软键盘的代码如下: InputMethodManager imm = (InputMethodManager) getSystemService(Context.INPUT ...

  4. ios7隐藏系统底部导航

    ios7隐藏系统底部导航 minimal-ui <meta id="viewport" name="viewport" content="wid ...

  5. iOS 隐藏系统的导航,使用自定义的导航

    #import <UIKit/UIKit.h> @interface AppDelegate : UIResponder <UIApplicationDelegate> @pr ...

  6. android如何调用显示和隐藏系统默认的输入法(一)

    1.调用显示系统默认的输入法 方法一. InputMethodManager imm = (InputMethodManager) getSystemService(Context.INPUT_MET ...

  7. 利用 /proc/sys/kernel/core_pattern隐藏系统后门

    ref:https://xz.aliyun.com/t/1098/ 这里所说的core_pattern 指的是:/proc/sys/kernel/core_pattern. 我们知道在Linux系统中 ...

  8. Postgresql的隐藏系统列

    转自 https://www.2cto.com/database/201206/137301.html   Postgresql的隐藏系统列   和oracle数据库一样,postgresql也有自身 ...

  9. CI 框架怎么去掉隐藏入口文件 index.php

    当我重新接触一个框架的时候首先肯定要去掉入口文件,也就是index.php 这个东西在url上很不漂亮,而且每次我访问我的网站的时候都要打进去url里面.这样告诉一个去掉 CI框架里面入口文件的方法, ...

随机推荐

  1. Unity 用ml-agents机器学习造个游戏AI吧(2)(入门DEMO)

    前言: 上一篇博文已经介绍了Unity ml-agents的环境配置(https://www.cnblogs.com/KillerAery/p/10629963.html)了. 个人建议先敲demo再 ...

  2. ubuntu中使用docker部署.netcore2.1

     概述    .netcore发布这么久,到现在才在项目中实际运用,之前算是了解一点,一般找工作都会问是否运用过.netcore,软件研发来说,如果这个技术没用过,觉得挺难,其实不难..netcore ...

  3. ACM入门之OJ~

    所谓OJ,顾名思义Online Judge,一个用户提交的程序在Online Judge系统下执行时将受到比较严格的限制,包括运行时间限制,内存使用限制和安全限制等.用户程序执行的结果将被Online ...

  4. 从后台servlet中,获取jsp页面输入的值,来删除用户一行信息

    后台servlet设置 protected void doPost(HttpServletRequest request, HttpServletResponse response) throws S ...

  5. Android App渗透测试工具drozer,Qark,Androguard

    一. drozer简介 drozer(以前称为Mercury)是一款Android安全测试框架. drozer允许您通过承担应用程序的角色并与Dalvik VM,其他应用程序的IPC端点和底层操作系统 ...

  6. Android中资源的引用

    R.java简单来说就是资源 R.java会自动收录当前应用中所有的资源,并根据这些资源建立对应的ID,包括:布局资源.控件资源.String资源.Drawable资源等 可以理解把所以资源按规则存放 ...

  7. Python之路【第四篇】:Python基础之函数

    函数的理解 面向过程:根据业务逻辑从上到下垒代码 函数式:将某功能代码封装到函数中,日后便无需重复编写,仅调用函数即可 函数作用是你的程序有良好的扩展性.复用性. 同样的功能要是用3次以上的话就建议使 ...

  8. js 计算器转摘

    转自:https://mp.weixin.qq.com/s/Jxe3V7D0PFLvIFNZPlSyNg <table> <tr> <td colspan="4 ...

  9. MongoDB 4.0 开发环境搭建集群

    环境准备 Liunx 服务器一台 以下示例为单机版安装集群, 没有分片 MongoDB 安装 1.下载 MongoDB tgz 安装包: 可以从下载中心下载: https://www.mongodb. ...

  10. new Date()传参的浏览器兼容性

    测试以下是在IE9的测试情况 可以看到IE9不支持new Date('2018-1-2')和new Date('123456'),但是支持new Date('2018-01-02').new Date ...