uni-app uni.chooseImage()选择图片时顶部和通知栏重叠无法点击完成

发布于 1周前 作者 bupafengyu 来自 Uni-App

uni-app uni.chooseImage()选择图片时顶部和通知栏重叠无法点击完成

项目属性 信息
产品分类 uniapp/App
PC开发环境操作系统 Windows
PC开发环境操作系统版本号 windows 10 LTSC
HBuilderX类型 正式
HBuilderX版本号 4.29
手机系统 Android
手机系统版本号 Android 13
手机厂商 华为
手机机型 荣耀
页面类型 vue
vue版本 vue2
打包方式 云端
项目创建方式 HBuilderX

操作步骤:

  • 我的页面选择bug反馈 选择图片上传 选中图片 点击完成

预期结果:

  • 能正常点击完成

实际结果:

  • 完成按钮与顶部通知栏重叠 无法点击完成

bug描述:

  • 部分手机出现选择图片的时候通知栏和完成按钮重叠导致无法点击完成api使用的是uni.chooseImage(); 微信小程序和app都有出现这种情况

下载App


1 回复

在开发uni-app应用时,使用uni.chooseImage()接口选择图片时,如果遇到顶部和通知栏重叠导致无法点击“完成”按钮的问题,通常是由于页面布局或系统状态栏处理不当引起的。针对这个问题,你可以尝试以下几种解决方案,包括调整页面布局和状态栏适配。

解决方案一:调整页面布局

确保你的页面布局不会遮挡到系统状态栏或底部导航栏。你可以使用safe-area-inset等样式属性来处理这个问题。以下是一个示例代码,展示如何在页面中设置安全区域:

<template>
  <view class="container">
    <button @click="chooseImage">选择图片</button>
    <view v-for="(image, index) in images" :key="index" class="image-wrapper">
      <image :src="image" class="image"></image>
    </view>
  </view>
</template>

<script>
export default {
  data() {
    return {
      images: []
    };
  },
  methods: {
    chooseImage() {
      uni.chooseImage({
        count: 9,
        success: (res) => {
          this.images = res.tempFilePaths;
        }
      });
    }
  }
};
</script>

<style scoped>
.container {
  padding: env(safe-area-inset-top) env(safe-area-inset-right) env(safe-area-inset-bottom) env(safe-area-inset-left);
}
.image-wrapper {
  margin: 10px;
}
.image {
  width: 100%;
  height: auto;
}
</style>

解决方案二:状态栏适配

确保你的应用已经正确适配了状态栏。在manifest.json中配置状态栏的高度:

{
  "mp-weixin": {
    "appid": "your-appid",
    "setting": {
      "statusBarStyle": "dark",
      "navigationBarTextStyle": "black",
      "navigationBarTitleText": "Your Title",
      "navigationBarBackgroundColor": "#ffffff"
    }
  }
}

同时,在页面的样式中,你可以使用--window-safe-area-top--window-safe-area-bottom等CSS变量来调整布局,确保内容不会被状态栏或底部导航栏遮挡。

解决方案三:检查系统权限

确保你的应用已经请求并获得了必要的系统权限,特别是访问相册和相机的权限。在AndroidManifest.xmliOSInfo.plist文件中检查并配置相关权限。

通过以上方法,你应该能够解决uni.chooseImage()选择图片时顶部和通知栏重叠导致无法点击“完成”按钮的问题。如果问题依然存在,建议检查具体的设备和系统版本,可能是特定环境下的兼容性问题。

回到顶部