uni-app Android 15 以上 wgt 小程序底部被系统导航栏遮盖 部分机型选择图片界面顶部被状态栏遮盖 猜测是 Android 15 Google 强制启用 edge-to-edge 有关

uni-app Android 15 以上 wgt 小程序底部被系统导航栏遮盖 部分机型选择图片界面顶部被状态栏遮盖 猜测是 Android 15 Google 强制启用 edge-to-edge 有关

操作步骤:

  1. 小程序SDK / HBuild 版本号:4.65,使用 nvue 开发,采用系统 Tabbar
  2. 运行在三星、Pixel、小米国际版的 Android 15 / Android 16 上

预期结果:

Uni 系统 Tabbar、图片选择器 正常显示和操作,不会被系统导航栏、状态栏遮挡

实际结果:

Uni 系统 Tabbar、图片选择器 被系统导航栏、状态栏遮挡

bug描述:

wgt 小程序,在部分国际机型的 Android 15、Android 16 上,界面会被系统导航栏、状态栏遮挡,导致用户无法操作。 目前收到的反馈机型有 三星 S23 Ultra、Pixel 6、小米15 Ultra 国际版 等。 搜索发现可能跟 Google 在 Android 15 强制启用 edge-to-edge 有关。 Android 小程序 SDK / HBuild 版本号:4.65。

开发环境 版本号 项目创建方式
nvue 4.65 系统 Tabbar

更多关于uni-app Android 15 以上 wgt 小程序底部被系统导航栏遮盖 部分机型选择图片界面顶部被状态栏遮盖 猜测是 Android 15 Google 强制启用 edge-to-edge 有关的实战教程也可以访问 https://www.itying.com/category-93-b0.html

4 回复

升级到最新的 4.75版本已适配这个问题

更多关于uni-app Android 15 以上 wgt 小程序底部被系统导航栏遮盖 部分机型选择图片界面顶部被状态栏遮盖 猜测是 Android 15 Google 强制启用 edge-to-edge 有关的实战教程也可以访问 https://www.itying.com/category-93-b0.html


升级到最新版本也不行呢,targetSdkVersion 35

回复 0***@tmp.dcloud.io: 我这边测试最新的demo 可以。 你这个问题是所有设备都会出现,还是只有部分设备才出现。

这个问题确实与 Android 15 强制启用 edge-to-edge 模式有关。在 Android 15+ 系统中,系统默认启用全屏布局,导致应用内容延伸到状态栏和导航栏下方。

针对 uni-app 的解决方案:

  1. 配置沉浸式状态栏: 在 pages.json 中配置:
{
  "globalStyle": {
    "navigationBarTextStyle": "black",
    "navigationBarTitleText": "uni-app",
    "navigationStyle": "custom",
    "app-plus": {
      "statusbar": {
        "immersive": true
      }
    }
  }
}
  1. 调整安全区域: 使用 safe-area-inset-bottom 确保内容不被遮挡:
.page {
  padding-bottom: constant(safe-area-inset-bottom);
  padding-bottom: env(safe-area-inset-bottom);
}
  1. 对于图片选择器: 建议使用 uni.chooseImage API,它会自动处理安全区域问题。

  2. 手动处理导航栏高度: 在 onLoad 中动态计算状态栏高度:

const { statusBarHeight } = uni.getSystemInfoSync()
回到顶部