Android 11.0 修改系统显示大小导航栏消失

Android 11.0 修改系统显示大小导航栏消失

1.显示大小设置为大时,导航栏图标不显示。
设置为大,较大,最大时,导航栏图标不显示。

在这里插入图片描述
在这里插入图片描述
2.开始怀疑是导航栏被隐藏了,各种折腾无效。

3.发现:
frameworks/base/packages/SystemUI/src/com/android/systemui/statusbar/phone/EdgeBackGestureHandler.java中

updateCurrentUserResources方法异常,加打印:

android.util.Log.d(TAG, "updateCurrentUserResources: navigation_bar_gesture_height "+ res.getDimension(com.android.internal.R.dimen.navigation_bar_gesture_height));android.util.Log.d(TAG, "updateCurrentUserResources: navigation_bar_frame_height "+ res.getDimension(com.android.internal.R.dimen.navigation_bar_frame_height));android.util.Log.d(TAG, "updateCurrentUserResources: navigation_bar_height "+ res.getDimension(com.android.internal.R.dimen.navigation_bar_height));android.util.Log.d(TAG, "updateCurrentUserResources: defaultGestureHeight "+ defaultGestureHeight + " dm.density " + dm.density + " dm.densityDpi " + dm.densityDpi);

结果:

2024-06-24 18:33:55.932   686-686   EdgeBackGestureHandler  com.android.systemui                 D  updateCurrentUserResources: dm:DisplayMetrics{density=1.1875, width=1920, height=720, scaledDensity=1.1875, xdpi=320.0, ydpi=320.0}
2024-06-24 18:33:55.932   686-686   EdgeBackGestureHandler  com.android.systemui                 D  updateCurrentUserResources: com.android.internal.R.dimen.navigation_bar_gesture_height:17105329
2024-06-24 18:33:55.932   686-686   EdgeBackGestureHandler  com.android.systemui                 D  updateCurrentUserResources: dm.density:1.1875
2024-06-24 18:33:55.932   686-686   EdgeBackGestureHandler  com.android.systemui                 E  updateCurrentUserResources: defaultGestureHeight:48.0
2024-06-24 18:33:55.998   686-686   EdgeBackGestureHandler  com.android.systemui                 D  updateCurrentUserResources: dm:DisplayMetrics{density=1.1875, width=1920, height=720, scaledDensity=1.1875, xdpi=320.0, ydpi=320.0}
2024-06-24 18:33:55.998   686-686   EdgeBackGestureHandler  com.android.systemui                 D  updateCurrentUserResources: com.android.internal.R.dimen.navigation_bar_gesture_height:17105329
2024-06-24 18:33:55.998   686-686   EdgeBackGestureHandler  com.android.systemui                 D  updateCurrentUserResources: dm.density:1.1875
2024-06-24 18:33:55.998   686-686   EdgeBackGestureHandler  com.android.systemui                 E  updateCurrentUserResources: defaultGestureHeight:48.0
2024-06-24 18:34:02.916   686-686   EdgeBackGestureHandler  com.android.systemui                 D  updateCurrentUserResources: dm:DisplayMetrics{density=1.375, width=1920, height=720, scaledDensity=1.375, xdpi=320.0, ydpi=320.0}
2024-06-24 18:34:02.916   686-686   EdgeBackGestureHandler  com.android.systemui                 D  updateCurrentUserResources: com.android.internal.R.dimen.navigation_bar_gesture_height:17105329
2024-06-24 18:34:02.917   686-686   EdgeBackGestureHandler  com.android.systemui                 D  updateCurrentUserResources: dm.density:1.375
2024-06-24 18:34:02.917   686-686   EdgeBackGestureHandler  com.android.systemui                 E  updateCurrentUserResources: defaultGestureHeight:0.0
2024-06-24 18:34:02.959   686-686   EdgeBackGestureHandler  com.android.systemui                 D  updateCurrentUserResources: dm:DisplayMetrics{density=1.375, width=1920, height=720, scaledDensity=1.375, xdpi=320.0, ydpi=320.0}
2024-06-24 18:34:02.959   686-686   EdgeBackGestureHandler  com.android.systemui                 D  updateCurrentUserResources: com.android.internal.R.dimen.navigation_bar_gesture_height:17105329
2024-06-24 18:34:02.959   686-686   EdgeBackGestureHandler  com.android.systemui                 D  updateCurrentUserResources: dm.density:1.375
2024-06-24 18:34:02.959   686-686   EdgeBackGestureHandler  com.android.systemui                 E  updateCurrentUserResources: defaultGestureHeight:0.0

com.android.internal.R.dimen.navigation_bar_height的值为0

4.解决:

在frameworks\base\core\res\res添加文件夹:

最小宽度sw这个是Android默认的,
一般应该是这样计算(在网上也能搜索到)
adb shell wm size 得到分辨率为 1920*720
adb shell wm density 得到密度为 160
那么sw = 160 * 小的size / density = 160x720/240 = 720

frameworks/base/core/res/res/values-sw400dp/
frameworks/base/core/res/res/values-sw460dp/
frameworks/base/core/res/res/values-sw520dp/

我的机器dm.densityDpi为180,190,220,252,284,在160和190正常
所以添加以上三个,在文件夹中添加dimens.xml文件:

<resources><!-- Height of the bottom navigation / system bar. --><dimen name="navigation_bar_height">64dp</dimen><!-- Height of the bottom navigation bar in landscape; oftenthe same as @dimen/navigation_bar_height --><dimen name="navigation_bar_height_landscape">64dp</dimen></resources>

navigation_bar_height*dm.density
180的值为:48dp
190的值为:56dp
220的值为:64dp
252的值为:72dp
284的值为:80dp

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/pingmian/37736.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

无人机的弱点和限制

1.电池和续航能力&#xff1a; 续航时间短&#xff1a;大多数无人机依赖锂电池供电&#xff0c;续航时间通常在30分钟至1小时之间&#xff0c;限制了其长时间任务的执行能力。 能量密度低&#xff1a;现有电池技术的能量密度无法满足长时间飞行需求&#xff0c;需要突破性的发…

62.ThreadLocal在数据库Connection对象上的应用

JDBC操作数据库Connection JDBC操作数据库的过程中,为了保证所有的操作在一个事务中: 1.使用的连接必须是同一个:service层开启事务的connection需要跟dao层访问数据库的connection保持一致。 2.线程并发情况下,每个线程只能操作各自的connection。每个线程的connection对…

MySQL中SQL语句的执行过程详解

1. 客户端连接和请求 客户端连接 在MySQL中&#xff0c;客户端连接和请求过程是执行SQL语句的第一步。该步骤主要涉及客户端如何连接到MySQL服务器&#xff0c;以及如何维护和管理客户端与服务器之间的会话。 客户端连接&#xff1a; 连接器&#xff08;Connector&#xff09…

amis源码 更新组件数据域的几种方法

更新组件数据域的几种方法&#xff1a; 默认都是合并数据&#xff0c;非覆盖(指定replace为true的才是覆盖)&#xff1a; const comp amisScoped.getComponentById(id);//或者getComponentByName(name) 1.comp.setData(values, replace); //更新多个值values&#xff0c; r…

Linux多进程和多线程(一)

进程 进程的概念 进程&#xff08;Process&#xff09;是操作系统对一个正在运行的程序的一种抽象。它是系统运行程序的最小单位&#xff0c;是资源分配和调度的基本单位。 进程的特点如下 进程是⼀个独⽴的可调度的活动, 由操作系统进⾏统⼀调度, 相应的任务会被调度到cpu …

Python逻辑控制语句 之 判断语句--if else结构

1.if else 的介绍 if else &#xff1a;如果 ... 否则 .... 2.if else 的语法 if 判断条件: 判断条件成立&#xff0c;执行的代码 else: 判断条件不成立&#xff0c;执行的代码 &#xff08;1&#xff09;else 是关键字, 后⾯需要 冒号 &#xff08;2&#xff09;存在冒号…

昇思25天学习打卡营第6天|函数式自动微分

今天学习自动微分。 神经网络训练有点类似于负反馈调节&#xff0c;所以需要用到微分运算。 用来计算获得损失和梯度。 求导求微分等等这些操作对于离开数学很久的人是很困难的一个天堑&#xff0c;幸好mindspore框架给我们提供了一系列简单的API屏蔽这些运算过程&#xff0c;…

【BILIBILIAS】安卓端B站视频下载神器,4K画质轻松get!

B站视频下载的方法之前给大家分享过网页版和电脑版的工具《太猛了&#xff01;B站视频下载方法&#xff01;三端通用&#xff01;》&#xff0c;但是手机上的工具没有给大家分享过。今天今天就给大家分享一个安卓端的B站视频下载神器——BILIBILIAS&#xff0c;可以轻松下载4K画…

【UE 网络】专用服务器和多个客户端加入游戏会话的过程,以及GameMode、PlayerController、Pawn的创建流程

目录 0 引言1 多人游戏会话1.1 Why&#xff1f;为什么要有这个1.2 How&#xff1f;怎么使用&#xff1f; 2 加入游戏会话的流程总结 &#x1f64b;‍♂️ 作者&#xff1a;海码007&#x1f4dc; 专栏&#xff1a;UE虚幻引擎专栏&#x1f4a5; 标题&#xff1a;【UE 网络】在网络…

Linux部署Java项目至云服务器

文章目录 1.服务器环境2.发布部署过程2.1 执行SQL脚本2.2 修改代码中数据源的配置2.3 修改配置中的日志级别与日志文件路径2.4 打包Java程序2.5 上传到服务器2.6 后台运行2.7 服务器开放对应的端口2.8 访问验证 1.服务器环境 要将我们的项目部署到云服务器上我们就需要先有一个…

c#上位机与PLC通讯心跳的实现方法

上位机与PLC之间的通信是实现自动化或者实时监控的重要环节。为了确保通讯的稳定与可靠,大部分采用"心跳机制,它在通信过程中起到检测和维护连接状态的重要作用。 心跳机制 在上位机与PLC的通信中,心跳机制类似于人体的心跳,是系统保持正常运行的关键指标之一。这种机…

2024年值得信赖的在线代理IP服务商

在当今的网络世界中&#xff0c;代理IP服务成为了许多企业和个人在进行网络数据处理、多账号管理等任务时不可或缺的工具。然而&#xff0c;面对市场上众多的代理IP服务商&#xff0c;如何挑选出真正值得信赖的服务商成为了一大难题。作为专业的测评团队&#xff0c;我们近期对…

基于MIMO系统的预编码matlab性能仿真

目录 1.算法运行效果图预览 2.算法运行软件版本 3.部分核心程序 4.算法理论概述 4.1 最小均方误差&#xff08;MMSE&#xff09;准则 4.2 量化准则 5.算法完整程序工程 1.算法运行效果图预览 (完整程序运行后无水印) 2.算法运行软件版本 MATLAB2022a 3.部分核心程序 …

HarmonyOS APP应用开发项目- MCA助手(持续更新中~)

简言&#xff1a; gitee地址&#xff1a;https://gitee.com/whltaoin_admin/money-controller-app.git端云一体化开发在线文档&#xff1a;https://developer.huawei.com/consumer/cn/doc/harmonyos-guides-V5/agc-harmonyos-clouddev-view-0000001700053733-V5 注&#xff1…

【PyQt】20-QTimer(动态显示时间、定时关闭)

QTimer 前言一、QTimer介绍二、动态时间展示2.1 代码2.2 运行结果 三、定时关闭3.1 介绍他的两种用法1、使用函数或Lambda表达式2、带有定时器类型&#xff08;高级&#xff09; 3.2 代码3.3 运行结果 总结 前言 好久没学习了。 一、QTimer介绍 pyqt里面的多线程可以有两种实…

IOS Swift 从入门到精通: ios从服务器获取数据

文章目录 证书数据模型将数据添加到 Firestore进一步了解Combine创建 ViewModel证书数据模型 接下来,我们需要为证书创建一个模型。创建一个名为“Certificate.swift”的新文件,并添加以下模型: // Certificate.swiftstruct Certificate: Identifiable {var id: Stringvar…

微信内置H5支付

&#x1f9d1;‍&#x1f4bb; 写在开头 点赞 收藏 学会&#x1f923;&#x1f923;&#x1f923; 场景是用户通过微信扫app内的收款码&#xff0c;跳到一个h5页面。然后完成支付。 代码实现的整体流程&#xff1a; 使用微信扫码&#xff0c;码是app内生成的&#xff0c;码…

Day38:LeedCode 1049. 最后一块石头的重量 II 494. 目标和 474.一和零

1049. 最后一块石头的重量 II 有一堆石头&#xff0c;用整数数组 stones 表示。其中 stones[i] 表示第 i 块石头的重量。 每一回合&#xff0c;从中选出任意两块石头&#xff0c;然后将它们一起粉碎。假设石头的重量分别为 x 和 y&#xff0c;且 x < y。那么粉碎的可能结果…

大数据面试题之MapReduce(2)

目录 shuffle为什么要排序? 说一下map是怎么到reduce的? 说一下你了解的用哪几种shuffle机制? MapReduce的数据处理过程 mapjoin的原理(实现)?应用场景? reducejoin如何执行(原理) MapReduce为什么不能产生过多小文件 MapReduce分区及作用 ReduceTask数量和分区数…

Java的NIO体系

目录 NIO1、操作系统级别下的IO模型有哪些&#xff1f;2、Java语言下的IO模型有哪些&#xff1f;3、Java的NIO应用场景&#xff1f;相比于IO的优势在哪&#xff1f;4、Java的IO、NIO、AIO 操作文件读写5、NIO的核心类 :Buffer&#xff08;缓冲区&#xff09;、Channel&#xff…