1***@163.com
1***@163.com
  • 发布:2022-12-02 08:41
  • 更新:2022-12-02 10:35
  • 阅读:315

【报Bug】状态栏高度获取错误

分类:uni-app

产品分类: uniapp/小程序/微信

PC开发环境操作系统: Mac

PC开发环境操作系统版本号: 12.6.1

HBuilderX类型: 正式

HBuilderX版本号: 3.6.5

第三方开发者工具版本号: Stable 1.06.2210310

基础库版本号: 2.27.3

项目创建方式: HBuilderX

示例代码:
const sysInfo = uni.getSystemInfoSync()  
sysInfo.statusBarHeight. # 值为20
var(--status-bar-height)   # 值为25

操作步骤:
const sysInfo = uni.getSystemInfoSync()  
sysInfo.statusBarHeight. # 值为20
var(--status-bar-height)   # 值为25

预期结果:
const sysInfo = uni.getSystemInfoSync()  
sysInfo.statusBarHeight. # 值为20
var(--status-bar-height)   # 值为20

实际结果:
const sysInfo = uni.getSystemInfoSync()  
sysInfo.statusBarHeight. # 值为20
var(--status-bar-height)   # 值为25

bug描述:

通过uni.getSystemInfoSync()获取到的statusBarHeight高度和通过css变量获取到的状态栏高度不一致,

例如

const sysInfo = uni.getSystemInfoSync()  
sysInfo.statusBarHeight. # 值为20
var(--status-bar-height)   # 值为25
2022-12-02 08:41 负责人:无 分享
已邀请:
zZZ1Ma

zZZ1Ma

这个css变量本质是编译前定义的常量,可将  
HBuilderX\plugins\uniapp-cli-vite\node_modules\@dcloudio\uni-mp-vite\dist\plugin\configResolved.js  
第12行  
const cssVars = `page{--status-bar-height:25px;--top-window-height:0px;--window-top:0px;--window-bottom:0px;--window-left:0px;--window-right:0px;--window-magin:0px}`;  
更改为  
const cssVars = ''  
然后在App内通过API重新赋值  

最关键的是,状态栏高度每个机型不尽相同,文档这里一万年了还不更改,之前好多人反映过都是不了了之
  • zZZ1Ma

    最涩的是,你不这样改,直接给--status-bar-height赋值还不行,得改用--status-bar_height;就算赋空值也是然并卵,每次HX更新都得重新赋空值

    2022-12-02 10:38

要回复问题请先登录注册