将Gradle从7.0.4升级到7.4.0后Android应用显示区域垂直缩小
问题原因及解决方案
核心原因
Android Gradle Plugin(AGP)从7.0.x升级到7.4.x版本后,默认会为应用添加最大宽高比限制的配置。Android 8.0(API 26)开始支持应用设置该限制,当设备屏幕宽高比超过AGP默认设定的阈值时,系统会自动在应用显示区域外留出空白,且屏幕宽高比越大(比如Pixel 6这类长屏设备),留白面积就越大。短屏设备因为宽高比没超过阈值,所以不会出现问题。
解决方法
你可以通过以下两种方式取消或调整这个限制:
- 方式一:修改AndroidManifest.xml
在<application>标签内添加或更新android.max_aspect的meta-data配置,要么指定适配长屏的宽高比值,要么直接取消限制:
<meta-data android:name="android.max_aspect" android:value="unlimited" /> <!-- 完全取消宽高比限制 -->
如果需要指定具体值(比如适配常见的2.4:1长屏设备),可以把value设为"2.4"。
- 方式二:在Module级build.gradle中配置
直接在AGP的defaultConfig里覆盖默认的宽高比设置:
Groovy语法:
android { defaultConfig { // 取消限制 maxAspectRatio "unlimited" // 或者指定具体值:maxAspectRatio 2.4 } }
Kotlin DSL语法:
android { defaultConfig { maxAspectRatio = "unlimited" // 或者指定具体值:maxAspectRatio = 2.4f } }
配置完成后重新编译运行,应用就能铺满长屏设备的整个显示区域,底部的留白和bottom sheet错位问题都会解决。
内容的提问来源于stack exchange,提问作者jack_the_beast
相关产品推荐
相关产品推荐

