RK 7.1 导航栏添加隐藏虚拟按键的开关 并向上滑动显示虚拟按键
主要是在导航栏添加一个按钮,点击按钮隐藏虚拟按键,然后在底部向上滑动能够掉出虚拟按键
主要是按照这位大神参考的: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 导航栏添加隐藏虚拟按键的开关 并向上滑动显示虚拟按键相关推荐
- android 9.0 SystemUI导航栏添加虚拟按键功能(三)
1.概述 在9.0的系统产品开发中,对于在SystemUI的原生系统中默认只有三键导航,想添加其他虚拟按键就需要先在构建导航栏的相关布局 中分析结构,然后添加相关的图标xml就可以了,然后添加对应的点 ...
- android 9.0 SystemUI导航栏添加虚拟按键功能(一)
目录 1.概述 2.SystemUI导航栏添加虚拟按键功能(一)的核心类
- android 11.0 SystemUI导航栏 添加虚拟按键(一)
1.概述 在11.0产品定制化中,SystemUI的相关功能需求需要为导航栏添加虚拟按键来实现某些功能,比如添加wifi,可以通过点击wifi跳转到wifi页面,日期可以弹出当前万年历功能,所以需要对 ...
- Android 9 导航栏添加截图按钮
Android 9 导航栏添加截图按钮 功能:Android 系统底部导航栏(HOME\BACK)位置添加截图按钮,系统设置界面添加截图开关 主要修改工程有SystemUI 和 Settings 注意 ...
- html页面导航图标添加,vue 切换网页导航栏添加logo及标题
index.html 网页导航栏添加logo及标题 var scene = window.location.host if (scene === 'anfang.cn') { document.que ...
- Android导航栏自动隐藏,Android隐藏和显示虚拟导航栏
隐藏导航栏 /** * 隐藏虚拟按键,并且全屏 */ public static void hideBottomNav(Activity activity) { View decorView = ac ...
- css中侧边导航栏怎么隐藏,CSS3手机侧边导航栏滑动隐藏特效
[温馨提示]源码包解压密码:www.youhutong.com 效果图: 描述说明: 共4种CSS3手机侧边导航栏滑动隐藏特效 1.默认的点击滑动侧边栏菜单效果. 2.带3D transforms的滑 ...
- Android 7.0 SystemUI 状态/导航栏的隐藏与显示
平台 Android 7.1 + RK3288 概述 从Android 4.4开始支持沉浸式全屏体验,在沉浸式全屏模式下,状态栏. 虚拟按键动态隐藏,应用可以使用完整的屏幕空间,按照 Google 的 ...
- Android 底部导航栏添加消息数目提示
效果图 写一篇短小精悍,好用的知识积累吧.开发中时常会出现信息提醒,新内容提示等等一堆问题.其实就是在各种控件或者是item上面加"小圆点".网上一搜一大堆...但是感觉说的好多. ...
最新文章
- Arm 发布Mali多媒体套件,机器学习将不再是高端手机的专享
- 一致性hash算法_分布式寻址算法
- Linux内核ipsec密码库,关于2.6.18 ipsec内核支持(NETKEY)的问题
- java模态_java – 如何在另一个模态JDialog之上创建一个模态的JDialog
- Servlet/jsp和Action/jsp传值
- parseInt(08)或parseInt(09)转换返回0的解决办法
- linux 如何对文件解压或打包压缩
- xlrd对excel单列处理
- 先进先出算法_结构与算法(02):队列和栈结构
- show status用法
- DDD 领域驱动设计:贫血模型、充血模型的深入解读
- 一家企业为何使用多家公司的防火墙
- scheduled只执行一次_升级@Scheduled-分布式定时任务
- php中get_featured_posts()是什么意思,WordPress的Get_Posts()函数详解
- DEV控件:gridControl常用属性设置
- Mysql学习总结(17)——MySQL数据库表设计优化
- cmdpython命令大全_Python命令 python使用cmd命令
- HFSS学习笔记—19.HFSS模型导出dxf文件并绘制PCB
- 单例模式【饿汉模式和懒汉模式异同点】
- 帝国插件自动采集文章主动推送给搜索引擎自动安装目录
热门文章
- 同一个人两次被雷电击中,张益唐攻克世纪难题朗道-西格尔零点猜想?
- linux定制欢迎界面motd,linux 界面 /etc/motd
- 根本原因分析(RCA)
- java anon,shiro anon 不生效
- 计算机和影视结合专业,计算机专业专业建设总结与典型案例2.5微电影拍摄与后期制作(影视拍摄与后期制作技术)课....
- 2012年1月51CTO壁纸点评活动获奖名单【已结束】
- python pdb调试多进程_PDB远程调试Python多进程子程序
- Python爬虫实战--58同城二手商品爬虫
- 谷歌创始人布林申请离婚:身价930亿美元 曾出轨前妻闺蜜
- java神雕侠侣1古墓情缘游戏攻略_神雕侠侣古墓派后期攻略讲解