当前位置: 首页 > news >正文

Android全屏黑边解决方案

在Android12以上的手机,设置全屏后屏幕底部有黑边或者白边,有的屏幕顶部有黑边。解决方案很简单,在使用的主题中添加对应的设置即可,如下:

  1. res/values/themes.xml

    <resources><style name="Base.Theme.Laughf" parent="Theme.Material3.DayNight.NoActionBar"><!--全屏后顶部状态栏将不显示--><item name="android:windowFullscreen">true</item><!--使屏幕顶部的状态栏透明--><item name="android:windowTranslucentStatus">true</item><!--使屏幕底部的导航栏透明,有的手机是半透明--><item name="android:windowTranslucentNavigation">true</item>	        </style><style name="Theme.Laughf" parent="Base.Theme.Laughf" />
    </resources>
    
  2. res/values-v27/themes.xml

    <?xml version="1.0" encoding="utf-8"?>
    <resources><style name="Base.Theme.Laughf" parent="Theme.Material3.DayNight.NoActionBar"><!--全屏后顶部状态栏将不显示--><item name="android:windowFullscreen">true</item><!--使屏幕顶部的状态栏透明--><item name="android:windowTranslucentStatus">true</item><!--使屏幕底部的导航栏透明,有的手机是半透明--><item name="android:windowTranslucentNavigation">true</item><!--在我的小米11pro(android13) 上,虽然状态栏隐藏了,但是原状态位置上会被显示黑色。用下面的属性可解决,但是它是在API27才出的,所以需要声明在v27的文件夹中--><item name="android:windowLayoutInDisplayCutoutMode">shortEdges</item></style>
    </resources>
    
  3. 使用主题

    <?xml version="1.0" encoding="utf-8"?>
    <manifest xmlns:android="http://schemas.android.com/apk/res/android"xmlns:tools="http://schemas.android.com/tools"><applicationandroid:icon="@mipmap/ic_launcher"android:label="@string/app_name"        android:theme="@style/Theme.Laughf"><activityandroid:name=".MainActivity"android:exported="true"><intent-filter><action android:name="android.intent.action.MAIN" /><category android:name="android.intent.category.LAUNCHER" /></intent-filter></activity></application></manifest>
    

    这里把主题应用到了application,则所有的界面都会全屏,也可单独把主题设置到需要全屏的Activity上。

这种全屏后有个问题,如果在界面的底部有按钮,且系统启用了虚拟导航栏,则我们界面的按钮可能显示在虚拟导航栏的下方,这样导致点击不了下面的按钮。这种情况可以看看怎么获取虚拟导航栏的高度,然后给界面设置一个marginBottom。

http://www.lryc.cn/news/308975.html

相关文章:

  • 【矩阵】【方向】【素数】3044 出现频率最高的素数
  • 什么是RPC?谈谈你对RPC的理解
  • C语言实现哈希查找之线性探测算法
  • js:lodash template文件模板语法和应用
  • 在Windows系统上安装Docker和SteamCMD容器的详细指南有哪些?
  • 点击输入框,获取提示信息
  • 房贷计算器微信小程序原生语言
  • 【C++从0到王者】第四十六站:图的深度优先与广度优先
  • Docker技术概论(2):Docker环境的搭建
  • 电脑休眠之后唤不醒
  • Python列表中添加删除元素不走弯路
  • MATLAB环境下脑电信号EEG的谱分析
  • librtmp源码分析
  • CCDP.00.问老师问题前你首先需要做的事情
  • 「算法」常见位运算总结
  • 【C++初识】语句
  • Python线性代数傅里叶分析和动态系统模拟分析之一
  • mysql插入GEOMETRY相关字段类型(point,linestring等)
  • vue3学习 【5】watch的使用
  • PyTorch深度学习快速入门
  • 种花
  • Android Shadow插件化框架分析与集成(二)
  • Go 与 Rust:导航编程语言景观
  • 包管理工具之npm也慌了?
  • mobile app 安全扫描工具MobSF了解下
  • Gophish+EwoMail 自建钓鱼服务器
  • Dockerfile(5) - CMD 指令详解
  • 使用 Gradle 版本目录进行依赖管理 - Android
  • CS_上线三层跨网段机器(完整过程还原)
  • crpto 的AES算法解密为空