功能:实现顶部状态栏和底部导航栏的显示隐藏控制

在以下文件中进行修改frameworks/basepackages/SystemUI/src/com/android/systemui/statusbar/phone/StatusBar.java

import android.database.ContentObserver;

在makeStatusBarView()函数中添加

showStatusBar((Settings.Global.getInt(mContext.getContentResolver(),
                "show_status_bar", 1) != 0));

showNavBar((Settings.Global.getInt(mContext.getContentResolver(),
                "show_nav_bar", 1) != 0));

mContext.getContentResolver().registerContentObserver(Settings.Global.getUriFor("show_status_bar"), true,mShowStatusBarModeObserver);
        mContext.getContentResolver().registerContentObserver(Settings.Global.getUriFor("show_nav_bar"), true,mShowNavBarModeObserver);

添加以下函数

private void showStatusBar(boolean isShow) {
        Log.v(TAG, "showStatusBar = " + isShow);
        if (mStatusBarWindow != null) {
            mStatusBarWindow.setVisibility(isShow ? View.VISIBLE : View.GONE);
        }
    }

private void showNavBar(boolean isShow) {
        if (mNavigationBarView != null) {
            Log.i(TAG, "show nav bar =" + isShow);
            mNavigationBarView.setVisibility(isShow ? View.VISIBLE : View.GONE);
        }
    }

private void addNavigationBarInnerLocked(){
               if(mNavigationBarView == null){
                     createNavigationBar();
                 }
   }

private void removeNavigationBar() {
                 if (mNavigationBarView == null)  return;
                     mWindowManager.removeView(mNavigationBarView);
                     mNavigationBarView = null;
   }

private ContentObserver mShowStatusBarModeObserver = new ContentObserver(new Handler()) {
        @Override
        public void onChange(boolean selfChange) {
            showStatusBar((Settings.Global.getInt(mContext.getContentResolver(),
                "show_status_bar", 1) != 0));
        }
   };

private ContentObserver mShowNavBarModeObserver = new ContentObserver(new Handler()) {
        @Override
        public void onChange(boolean selfChange) {
                        if(Settings.Global.getInt(mContext.getContentResolver(),"show_nav_bar", 1) != 0){
                                addNavigationBarInnerLocked();
                        }else{
                                removeNavigationBar();
                        }
        }
    };

rk3399 android 9.0 frameworks中添加导航栏状态栏控制相关推荐

  1. Android 9.0 APP中显示导航栏的menu键

    PS:以前  Android 4.0 时代,写了个APP,用屏幕底部菜单键提供两个刷新及退出按钮,但是现在 android 动不动就更新下,现在我手机已经到 9.0 版了,原来的导航栏三个小点点菜单键 ...

  2. android4.0 去掉虚拟按键 教程,Android 4.0 隐藏虚拟按键(导航栏)的方法

    在Android4.0里,多了一些API,其中包括怎样隐藏虚拟按键(导航栏),这样编写游戏或一个视频播放器时,可以设置隐藏虚拟按键的参数,达到最佳效果,当然前提是使用的手机是有虚拟按键的,如下图所示下 ...

  3. Android 4.2虚拟按键背景透明,Android 4.0 隐藏虚拟按键(导航栏)的方法

    在Android4.0里,多了一些API,其中包括怎样隐藏虚拟按键(导航栏),这样编写游戏或一个视频播放器时,可以设置隐藏虚拟按键的参数,达到最佳效果,当然前提是使用的手机是有虚拟按键的,例如gala ...

  4. 如何在Android 4.0 ICS中禁用StatusBar | SystemBar | 状态栏 【完美版】

    这个世界上总是有很多牛人,我们不得不对此表示无限钦佩. 在我上次博文发出后,我始终对此耿耿于怀,因为之前提供的解决禁用Statusbar问题在ICS中依然存在问题,即不能自动隐现,需要重启.因此在搜索 ...

  5. 去除Android 6.0 界面下的导航栏:NavigationBar

    找到: frameworks\base\packages\SystemUI\src\com\android\systemui\statusbar\phone\PhoneStatusBar.java这个 ...

  6. Android 9.0 10.0 沉浸式状态栏导致导航栏状态栏灰色蒙层的解决方案

    1.概述 在10.0的系统产品开发中,在app开发中,沉浸式状态栏也是常有的样式,但是设置沉浸式状态栏后,会导致状态栏和导航栏会有灰色蒙层的问题存在 解决方案: DecorView是整个Window界 ...

  7. android微信电话锁屏,解决 Android 7.0 系统中,微信无法在锁屏画面显示

    文章版块:HTC One A9 在 Android 7.0 系统中htc手机微信怎么截屏htc手机微信怎么截屏,会出现微信无法在锁屏画面显示的状况.建议您进行下面修改就可以解决: 进入"HT ...

  8. 定制iOS 7中的导航栏和状态栏

    近期,跟大多数开发者一样,我也正忙于对程序进行升级以适配iOS 7.最新的iOS 7外观上有大量的改动.从开发者的角度来看,导航栏和状态栏就发生了明显的变化.状态栏现在是半透明的了,这也就意味着导航栏 ...

  9. ios 添加导航栏视图_iOS进度栏(进度视图)

    ios 添加导航栏视图 In this tutorial, we'll be discussing the UIProgressView component and create a progress ...

最新文章

  1. 计算机软件系统包括应用软件和什么,计算机软件系统包括什么
  2. helloworld:一个完整的WCF案例
  3. 1.16 模拟(排序)
  4. 一副眼镜一千多贵吗_成都配眼镜去哪里好一点?怎样配眼镜才不被坑
  5. iis swagger 部署_asp.net-core – 虚拟目录中的IIS站点Swagger UI端点
  6. 嵌入式Linux之旅——环境搭建篇之烧写整个系统
  7. java 判断是合法语言_使用Java 怎么实现一个判断IP地址是否合法的功能
  8. 信号与系统公式笔记(9)——Z变换
  9. 高仿微信表情控件 -- LQREmojiLibrary
  10. 关于pr(premier)2020不能使用beat edit的解决方法
  11. win10去除桌面快捷方式图标(亲测可用)
  12. java第六章十七题_Java语言面试题十七
  13. 论文简读-BootEA-《Bootstrapping Entity Alignment with Knowledge Graph Embedding》
  14. 互联网巨头们的地摊争夺战
  15. flink运行job任务时报错 Could not retrieve the execution result
  16. 详解手游平台搭建需要哪些条件?需要注意什么?
  17. Cadence IC618使用
  18. LC145 Binary Tree Postorder Traversal
  19. win10 WiFi 密码查询 命令
  20. 轻松玩转Windows平板

热门文章

  1. 斯蒂芬·钦(Stephen Chin)骑着自行车在欧洲巡游
  2. 二八原则将人分为了三六九等
  3. [易飞]累计组成用量=组成用量/(底数*标准用量)
  4. 使用python抓取5级行政区划
  5. PX4源码分析2:飞控系统控制流程简述
  6. 【Springboot】整合wxjava实现 微信小程序:模板消息
  7. [Bartender]C#调用BartenderSDK使用场景-客户标签案列
  8. 使用Matlab完成层次聚类算法(最小生成树算法)
  9. 教你一招解决百度网盘限速
  10. Flexe2.0 学习笔记二(利用PopUpManager实现一个组件登录窗体)