主要是在导航栏添加一个按钮,点击按钮隐藏虚拟按键,然后在底部向上滑动能够掉出虚拟按键
主要是按照这位大神参考的:https://blog.csdn.net/cuckoochun/article/details/84109895
新建布局文件
1、frameworks/base/packages/SystemUI/res/layout/hide_show.xml 可以参照home、back的格式

2、然后在虚拟按键的 config.xml 的config_navBarLayout添加hide标识

3、然后添加hide布局

frameworks/base/packages/SystemUI/src/com/android/systemui/statusbar/phone/NavigationBarInflaterView.java
public static final String HIDE = “hide”;

  •           }else if (HIDE.equals(button)){// add by csc for hide navigationBar
    
  •        //Log.d("chenshichun"," "+this.getClass().getCanonicalName()+" ::::::HIDE:button::");
    
  •        v = inflater.inflate(R.layout.hide_show, parent, false);
    
  •    } else if (RECENT.equals(button)) {
    

注册广播
frameworks/base/packages/SystemUI/src/com/android/systemui/statusbar/phone/PhoneStatusBar.java

+               filter.addAction("HIDE_NAVIGATION_BAR");// add by csc
+               filter.addAction("SHOW_NAVIGATION_BAR");// add by csc           -----------------------------else if (DevicePolicyManager.ACTION_SHOW_DEVICE_MONITORING_DIALOG.equals(action)) {mQSPanel.showDeviceMonitoringDialog();
+            }else if(action.equals("HIDE_NAVIGATION_BAR")&&mWindowManager!=null&&mNavigationBarView!=null&&mNavigat
+                mWindowManager.removeView(mNavigationBarView);//隐藏虚拟按键
+                mNavigationBarView = null ;
+                isNavigationShow = false;
+            }else if(action.equals("SHOW_NAVIGATION_BAR")){
+                if(isNavigationShow){
+                    return ;
+                }
+                    showNavigationBar();
+                    isNavigationShow = true;}
+                       }};
+ public void showNavigationBar() {
+        mNavigationBarView =(NavigationBarView) View.inflate(mContext, R.layout.navigation_bar, null);
+        prepareNavigationBarView();
+        addNavigationBar2();
+
+        //防止在桌面时上拉出导航栏时,导航栏背景为黑色
+        mNavigationBarView.setBackgroundColor(Color.TRANSPARENT);
+    }
+protected void addNavigationBar2() {
+        if (DEBUG) Log.v(TAG, "addNavigationBar: about to add " + mNavigationBarView);
+        if (mNavigationBarView == null) return;+        prepareNavigationBarView();
+        if(mNavigationBarView!=null && mNavigationBarView.getParent()==null) {// add by csc
+
+            mWindowManager.addView(mNavigationBarView, getNavigationBarLayoutParams());
+        }
+    } frameworks/base/services/core/java/com/android/server/policy/PhoneWindowManager.javaif (mNavigationBar != null && mNavigationBarPosition == NAV_BAR_BOTTOM) {requestTransientBars(mNavigationBar);}// 向上滑动掉出虚拟按键
+                         Intent intent = new Intent();
+                        intent.setAction("SHOW_NAVIGATION_BAR");
+                        mContext.sendBroadcast(intent);--------------------
-        } else if (keyCode == KeyEvent.KEYCODE_MENU) {
+        }
+               else if(keyCode == KeyEvent.KEYCODE_F12){// add by csc
+            Intent hideNavigationBarIntent = new Intent("HIDE_NAVIGATION_BAR");
+            mContext.sendBroadcast(hideNavigationBarIntent);
+            return -1;
+        }else if (keyCode == KeyEvent.KEYCODE_MENU) {// Hijack modified menu keys for debugging featuresfinal int chordBug = KeyEvent.META_SHIFT_ON;

RK 7.1 导航栏添加隐藏虚拟按键的开关 并向上滑动显示虚拟按键相关推荐

  1. android 9.0 SystemUI导航栏添加虚拟按键功能(三)

    1.概述 在9.0的系统产品开发中,对于在SystemUI的原生系统中默认只有三键导航,想添加其他虚拟按键就需要先在构建导航栏的相关布局 中分析结构,然后添加相关的图标xml就可以了,然后添加对应的点 ...

  2. android 9.0 SystemUI导航栏添加虚拟按键功能(一)

    目录 1.概述 2.SystemUI导航栏添加虚拟按键功能(一)的核心类

  3. android 11.0 SystemUI导航栏 添加虚拟按键(一)

    1.概述 在11.0产品定制化中,SystemUI的相关功能需求需要为导航栏添加虚拟按键来实现某些功能,比如添加wifi,可以通过点击wifi跳转到wifi页面,日期可以弹出当前万年历功能,所以需要对 ...

  4. Android 9 导航栏添加截图按钮

    Android 9 导航栏添加截图按钮 功能:Android 系统底部导航栏(HOME\BACK)位置添加截图按钮,系统设置界面添加截图开关 主要修改工程有SystemUI 和 Settings 注意 ...

  5. html页面导航图标添加,vue 切换网页导航栏添加logo及标题

    index.html 网页导航栏添加logo及标题 var scene = window.location.host if (scene === 'anfang.cn') { document.que ...

  6. Android导航栏自动隐藏,Android隐藏和显示虚拟导航栏

    隐藏导航栏 /** * 隐藏虚拟按键,并且全屏 */ public static void hideBottomNav(Activity activity) { View decorView = ac ...

  7. css中侧边导航栏怎么隐藏,CSS3手机侧边导航栏滑动隐藏特效

    [温馨提示]源码包解压密码:www.youhutong.com 效果图: 描述说明: 共4种CSS3手机侧边导航栏滑动隐藏特效 1.默认的点击滑动侧边栏菜单效果. 2.带3D transforms的滑 ...

  8. Android 7.0 SystemUI 状态/导航栏的隐藏与显示

    平台 Android 7.1 + RK3288 概述 从Android 4.4开始支持沉浸式全屏体验,在沉浸式全屏模式下,状态栏. 虚拟按键动态隐藏,应用可以使用完整的屏幕空间,按照 Google 的 ...

  9. Android 底部导航栏添加消息数目提示

    效果图 写一篇短小精悍,好用的知识积累吧.开发中时常会出现信息提醒,新内容提示等等一堆问题.其实就是在各种控件或者是item上面加"小圆点".网上一搜一大堆...但是感觉说的好多. ...

最新文章

  1. Arm 发布Mali多媒体套件,机器学习将不再是高端手机的专享
  2. 一致性hash算法_分布式寻址算法
  3. Linux内核ipsec密码库,关于2.6.18 ipsec内核支持(NETKEY)的问题
  4. java模态_java – 如何在另一个模态JDialog之上创建一个模态的JDialog
  5. Servlet/jsp和Action/jsp传值
  6. parseInt(08)或parseInt(09)转换返回0的解决办法
  7. linux 如何对文件解压或打包压缩
  8. xlrd对excel单列处理
  9. 先进先出算法_结构与算法(02):队列和栈结构
  10. show status用法
  11. DDD 领域驱动设计:贫血模型、充血模型的深入解读
  12. 一家企业为何使用多家公司的防火墙
  13. scheduled只执行一次_升级@Scheduled-分布式定时任务
  14. php中get_featured_posts()是什么意思,WordPress的Get_Posts()函数详解
  15. DEV控件:gridControl常用属性设置
  16. Mysql学习总结(17)——MySQL数据库表设计优化
  17. cmdpython命令大全_Python命令 python使用cmd命令
  18. HFSS学习笔记—19.HFSS模型导出dxf文件并绘制PCB
  19. 单例模式【饿汉模式和懒汉模式异同点】
  20. 帝国插件自动采集文章主动推送给搜索引擎自动安装目录

热门文章

  1. 同一个人两次被雷电击中,张益唐攻克世纪难题朗道-西格尔零点猜想?
  2. linux定制欢迎界面motd,linux 界面 /etc/motd
  3. 根本原因分析(RCA)
  4. java anon,shiro anon 不生效
  5. 计算机和影视结合专业,计算机专业专业建设总结与典型案例2.5微电影拍摄与后期制作(影视拍摄与后期制作技术)课....
  6. 2012年1月51CTO壁纸点评活动获奖名单【已结束】
  7. python pdb调试多进程_PDB远程调试Python多进程子程序
  8. Python爬虫实战--58同城二手商品爬虫
  9. 谷歌创始人布林申请离婚:身价930亿美元 曾出轨前妻闺蜜
  10. java神雕侠侣1古墓情缘游戏攻略_神雕侠侣古墓派后期攻略讲解