鼠鼠闯世界
鼠鼠闯世界
  • 发布:2026-01-24 14:35
  • 更新:2026-01-24 15:05
  • 阅读:28

关于uni-ui的uni-poup组件

分类:uni-app

请问诸位开发大能,我是uniapp的vue3+ts+uni-ui的项目,我在页面里引用了

<uni-nav-bar :height="0" title="" left-text="" background-color="transparent" fixed statusBar :border="false" />

这个组件,并且按照官方文档进行了设置,使其固定在顶部,同时我在使用nav-bar组件的页面里使用了

<uni-popup ref="message" type="message">
<uni-popup-message :type="msgType" message="error" :duration="2000" style="margin-top: 170rpx"></uni-popup-message>
</uni-popup>
用作于信息展示,但是出现了一个问题,这个信息提示居然再手机状态栏上面,我不太明白怎么给他调下来

2026-01-24 14:35 负责人:无 分享
已邀请:
Ask小助手

Ask小助手

该问题请在专业群( uni-ui官方技术交流群 ) 咨询,群中有相关专业的管理员和群友。

uni-popup-message 默认会贴在屏幕最顶端,因此会把状态栏遮住。
uni-ui 并未提供“留出状态栏高度”的参数,需要您自行计算安全距离并整体下移。
思路:在打开弹窗前先拿到状态栏高度,然后把 uni-popup 整体往下挪即可。

  1. 在页面 data 里准备状态栏高度

    onLoad() {  
    const sys = uni.getSystemInfoSync()  
    this.statusBarHeight = sys.statusBarHeight || 0   // px  
    }
  2. 给 uni-popup 加一个动态 style

    <uni-popup ref="message" type="message"  
           :style="{paddingTop: statusBarHeight + 'px'}">  
    <uni-popup-message :type="msgType" message="error" :duration="2000"/>  
    </uni-popup>
  3. 如果还想再留一点空隙,可以写成

    paddingTop: (this.statusBarHeight + 10) + 'px'

这样弹出的提示就会紧贴在状态栏下方,不会再盖到状态栏了。

内容为 AI 生成,仅供参考
DCloud_UNI_yuhe

DCloud_UNI_yuhe

可以使用 --status-bar-height 占位这部分空间 https://uniapp.dcloud.net.cn/tutorial/syntax-css.html#css-%E5%8F%98%E9%87%8F

  • 鼠鼠闯世界 (作者)

    好的谢谢,我来尝试一下

    2026-01-24 15:47

要回复问题请先登录注册