这是最简单解决Android适配之【虚拟按键遮挡布局】
最近开发项目有个适配的小问题,在用android studio 开发程序的时候发现一个问题,虚拟按键会遮挡布局,在6.0.1的系统中虚拟按键会挡住布局,特别是华为手机和小米底部会有虚拟按键等,而在6.0以下的API手机上测试不会出现这个问题。
在网上有好几种解决方案,但在我一一尝试之下最简单,最省事,最快速的解决方案如下:
1,在该xml布局的父布局中加上下面这句代码
android:fitsSystemWindows="true"
2,在Activity或BaseActivity的Oncreate()方法中添加所需状态栏或导航栏
//状态栏 @ 顶部getWindow().addFlags(WindowManager.LayoutParams.FLAG_TRANSLUCENT_STATUS);
//导航栏 @ 底部getWindow().addFlags(WindowManager.LayoutParams.FLAG_TRANSLUCENT_NAVIGATION);
代码示例:
protected void initSystemBarTint() {Window window = getWindow();if (translucentStatusBar()) {// 沉浸式状态栏if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) {window.clearFlags(WindowManager.LayoutParams.FLAG_TRANSLUCENT_STATUS);window.getDecorView().setSystemUiVisibility(View.SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN | View.SYSTEM_UI_FLAG_LAYOUT_STABLE);window.addFlags(WindowManager.LayoutParams.FLAG_DRAWS_SYSTEM_BAR_BACKGROUNDS);window.setStatusBarColor(Color.BLACK);} else if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.KITKAT) {getWindow().addFlags(WindowManager.LayoutParams.FLAG_TRANSLUCENT_STATUS);getWindow().addFlags(WindowManager.LayoutParams.FLAG_TRANSLUCENT_NAVIGATION);}return;}
还可以将虚拟按键隐藏起来,并且是全屏
protected void hideBottomUIMenu() {if (Build.VERSION.SDK_INT > 11 && Build.VERSION.SDK_INT < 19) { // lower apiView v = this.getWindow().getDecorView();v.setSystemUiVisibility(View.GONE);} else if (Build.VERSION.SDK_INT >= 19) {//for new api versions.View decorView = getWindow().getDecorView();int uiOptions = View.SYSTEM_UI_FLAG_HIDE_NAVIGATION| View.SYSTEM_UI_FLAG_IMMERSIVE_STICKY | View.SYSTEM_UI_FLAG_FULLSCREEN;decorView.setSystemUiVisibility(uiOptions);}
}
这是最简单解决Android适配之【虚拟按键遮挡布局】相关推荐
- android底部滑动出现虚拟按键,Android适配底部虚拟按键的方法详解
Android适配底部虚拟按键的方法详解 发布时间:2020-10-09 05:26:12 来源:脚本之家 阅读:171 作者:yuanzhihui123 最近项目进行适配的时候发现部分(如华为手机) ...
- android 虚拟按键遮挡布局,完美解决虚拟按键遮盖底部视图的问题
Android部分手机会有虚拟按键,而没有实体按键,例如华为系列的手机. 然而在开发过程中,有时候会涉及底部视图的开发,最终的结果却因为虚拟按键的关系,结果底部视图被虚拟按键给遮盖住了. 在这里,分为 ...
- android 虚拟按键挡住布局,Android 虚拟按键遮住了页面内容解决办法
在启动页的时候华为手机虚拟按键遮挡住了启动页下面的字找了找解决办法,特地记录一下 第一种办法:扩展虚拟按键 //状态栏 @ 顶部getWindow().addFlags(WindowManager.L ...
- android dialog隐藏虚拟按键,Android应用开发之Android dialog 去除虚拟按键的解决方法...
本文将带你了解Android应用开发Android dialog 去除虚拟按键的解决方法,希望本文对大家学Android有所帮助. Android 部分机型没有物理按键,只有虚拟按键,Activi ...
- Android:解决华为手机隐藏虚拟按键Activity被重新创建的问题
解决华为手机隐藏虚拟按键Activity被重新创建的问题 问题描述 解决方法 分析 问题描述 在华为手机P9上 屏幕底部虚拟按键用户可以随时隐藏或显示,在改变后 返回上一页,会导致页面重新创建,页面操 ...
- 解决华为手机隐藏虚拟按键Activity被重启的问题
引言 最近技术群里面的妹纸说:在华为手机上开发应用的时候,隐藏底部的虚拟按键Activity会被重启的问题,并且找不到问题所在,于是查查资料,发现问题解决起来蛮简单的. 问题描述 一开始觉得应该是代码 ...
- android系统触摸屏虚拟按键
(一)虚拟按键的描述可以见 韩超和梁泉的 <Android系统级深入开发--移植与调试>的第八章: 虚拟按键(Virtual Key)是Eclair版本开始增加的新特性.Virtual ...
- 关于Android 9 隐藏虚拟按键的问题
关于Android 9隐藏底部虚拟按键 遇到的问题 解决办法 遇到的问题 现在需要在安卓9.0的系统上进行修改,目的是在使用自己的app时无法退回到系统桌面. 解决办法 办法一: 首先想到的是在a ...
- 如何隐藏Android模拟器的虚拟按键
如何隐藏Android模拟器的虚拟按键 在我们做屏幕适配的时候,就务必需要使用模拟器进行适配.但是在编辑的过程中,总是发现令人恶心的黑不溜秋的虚拟按键,很影响我们进行屏幕适配,如下图: 那么如何才能如 ...
最新文章
- PHPCMS V9 杂记一
- linux下配置环境变量【原创】
- C++中null与0的区别
- 网络基准测试Netperf
- Sklearn(v3)——朴素贝叶斯(1)
- 巧妙设置yum软件库轻松解决软件包安装问题
- 数字图像处理之几何变换
- srpg 胜利条件设定_英雄联盟获胜条件
- jq之hover()
- table虚线边框_web前端工程师7天0基础到精通(TABLE+CSS制作《互联世纪网》)
- ArcGISTiledMapServiceLayer does not support Multi-Layer Caches
- 使用ImageMagick和Tesseract进行简单数字图像识别
- 航空信息指挥调度系统_应急指挥中心指挥调度系统解决方案(一)
- 图论 有向无环图 拓扑排序 是什么
- Linux进程的管理与调度(二)-- Linux的命名空间详解
- java增函数的单变量求解,最底层码农的不易谁能体会?谁心里苦谁知道啊。
- RabbitMq消息队列进一步认识
- 系统出错,发生系统错误1067
- SQLserver2008R2详细安装教程
- 仿真时信号出现高阻态、不定态——Test Bench中要做声明