安卓沉浸式状态栏适配有底部导航虚拟按键

如图 未适配和适配的两种效果图


代码实现
1.首先在onCreate()中

//适配底部导航虚拟栏if (StatusBarUtil.hasNavigationBarShow(this)) {getWindow().getDecorView().findViewById(android.R.id.content).setPadding(0, 0, 0, StatusBarUtil.getNavigationBarHeight(this));}

2.自己新建StatusBarUtil类中写

public static boolean hasNavigationBarShow(Activity activity) {if (Build.VERSION.SDK_INT < Build.VERSION_CODES.JELLY_BEAN_MR1) {return false;}WindowManager wm = (WindowManager) activity.getSystemService(Context.WINDOW_SERVICE);Display display = wm.getDefaultDisplay();DisplayMetrics outMetrics = new DisplayMetrics();//获取整个屏幕的高度display.getRealMetrics(outMetrics);int heightPixels = outMetrics.heightPixels;int widthPixels = outMetrics.widthPixels;//获取内容展示部分的高度outMetrics = new DisplayMetrics();display.getMetrics(outMetrics);int heightPixelsContent = outMetrics.heightPixels;int widthPixelsContent = outMetrics.widthPixels;int h = heightPixels - heightPixelsContent;int w = widthPixels - widthPixelsContent;return w > 0 || h > 0; //竖屏和横屏两种情况}/*** 获取导航栏高度** @param context* @return*/public static int getNavigationBarHeight(Context context) {return getSystemComponentDimen(context, "navigation_bar_height");}public static int getSystemComponentDimen(Context context, String dimenName) {// 反射手机运行的类:android.R.dimen.status_bar_height.int statusHeight = -1;try {Class<?> clazz = Class.forName("com.android.internal.R$dimen");Object object = clazz.newInstance();String heightStr = clazz.getField(dimenName).get(object).toString();int height = Integer.parseInt(heightStr);//dp->pxstatusHeight = context.getResources().getDimensionPixelSize(height);} catch (Exception e) {e.printStackTrace();}return statusHeight;}

搞定

安卓沉浸式状态栏适配底部导航虚拟按键相关推荐

  1. android 沉浸式状态栏导致布局被遮挡,沉浸式状态栏导致华为手机虚拟按钮被遮挡的解决办法...

    使用了沉浸式状态栏可以让应用给人浑然天成的感觉,是比较好的用户体验,从android 4.4 版本后才能使用城近视状态栏,具体表现是,4.4上是渐变色,5.0以后是全透明. 效果如下: 效果还是挺好的 ...

  2. android 沉浸式状态栏 兼容低版本,Android 沉浸式状态栏适配方案

    首先说下什么是沉浸式状态栏:这是android4.4以后开始支持的一种效果,状态栏不再是一个黑条,而是置为透明或者半透明,然后页面延伸到状态栏下面,这样状态栏区域也可以成为app页面显示区域的一部分, ...

  3. MUI-设置沉浸式状态栏后MUI导航栏的高度问题

    上篇文章实现了沉浸式状态栏,如果不使用MUI的导航栏可以不用关心这个问题.由于我们的项目一开始被大量使用了MUI的导航栏,所以决定解决这个问题,不然就要对项目做大量的修改,时间成本太高. 问题描述与分 ...

  4. 安卓沉浸式状态栏,android沉浸式状态栏工具类封装

    文章目录 前言 二.使用步骤 1.定义 2.使用 3.效果 前言 沉浸式状态栏对安卓6.0以上版本很简单,今天分享一个封装好的工具,供大家参考 二.使用步骤 1.定义 代码如下: package co ...

  5. 30秒搞定安卓沉浸式状态栏(类似ios)

    行业的悲哀!!!众所周知,设计给图都是用苹果的图给,很多苹果自带的功能,放到安卓上,要耗费几百上千行代码,有木有! 在最近的一个项目中,就碰到了这个问题,产品让做到跟苹果一样的沉浸式状态栏,也就是要求 ...

  6. 安卓沉浸式状态栏_《宫廷秘传》今日安卓计费删档开测

    小主们久等!抖音爆款古风剧情手游<宫廷秘传>今日安卓平台开启不限号计费删档测试!全平台公测即将开放!诚邀各平台小主一起体验黑莲花女主逆袭紫禁城的奋斗之旅. 性格迥异的皇子妃嫔,写实还原的宫 ...

  7. 安卓沉浸式状态栏_安卓平板也能有品质感,小新Pad Pro上手

    安卓平板给人的固有印象基本都是塑料外壳,廉价,低档,缺失质感的做工和万变不离其宗的模具无非就是为了压低售价,可是不是所有人都只追求价格的低廉,生活当然不能缺少品质.我们这次就来看看联想新发布的小新Pa ...

  8. 安卓沉浸式状态栏_要简单还要沉浸 Dacom L10 主动降噪(ANC)蓝牙耳机体验

    蓝牙耳机可以说是当下最热门的手机配件,耳机孔干掉之后,蓝牙耳机这几年进步得非常快,市面上出现了很多优秀的.高性价比的产品,目前的蓝牙耳机有几个大类,比较有代表性的就是TWS(真无线).头戴式.项圈式( ...

  9. Android 解决沉浸式状态栏和华为虚拟按键冲突

    对于现在的 App 来说,布局页面基本都会用到沉浸式状态栏,单纯的沉浸式状态栏很容易解决,但是在华为手机上存在一个底部虚拟按键的问题,会导致页面底部和顶部出现很大的问题,比如页面底部导航栏被按键覆盖, ...

最新文章

  1. 简单的文本框输入实时计数
  2. 虚拟机出现蓝屏解决方法
  3. 虚拟机上的ubuntu安装vmware tools
  4. 【NLP】3篇论文,看斯坦福团队如何构建更好用的聊天AI
  5. 软件关闭excel但是进程中还存在原因_从软件视角看波音737事故系列述评之一:软件普适化下的能力建设...
  6. 转错误 x error LNK1104: 无法打开文件“E:\xxxx\Debug\xxxx.exe”
  7. 都有哪些较好用的项目管理软件?
  8. 实验11:20220319 1+X 中级实操考试(id:3097)
  9. 去除最新版WinRAR的弹窗广告
  10. gis热力专题图制作
  11. 什么是研究报告,研究报告分为那些部分
  12. 将base64指纹编码输出为指定大小的图片
  13. -atime、-ctime、mtime、-newer
  14. Praat脚本-004 | 替换标注内容
  15. c语言浮典型数据类型,C语言的数据类型→浮点型数据
  16. DirectShow资料
  17. day09-面向对象综合训练综合练习
  18. Paper:《CatBoost: unbiased boosting with categorical features》的翻译与解读
  19. 【dotnet跨平台】微软昨天宣布正式发布.NET Core RC2和.NET Core SDK Preview 1,还有Entity Framework Core RC2
  20. 帮我看看怎么回事的错误

热门文章

  1. Ubuntu18.04安装系统后界面花屏,启动纯命令终端操作
  2. 如何在Access中使用进度表
  3. 2021.8.11【提高B组模拟3】T1 积木(乱糊暴搜)(正解:状压dp)
  4. CS5212替代RTD2166瑞昱DP转VGA方案中文设计
  5. 技术类电子书pdf下载网站
  6. openshift mysql_openshift 部署主备mysql
  7. 人工智能AI威武,爱也……恨也……
  8. 灵html源码,index.html
  9. 艺赛旗( RPA) 设计器 pip 安装模块
  10. matlab 批量将Excel表数据汇总成一个表