uni-app 页面设置setStatusBarStyle后会被还原

uni-app 页面设置setStatusBarStyle后会被还原

详细问题描述

(DCloud产品不会有明显的bug,所以你遇到的问题大都是在特定环境下才能重现的问题,请仔细描述你的环境和重现方式,否则DCloud很难排查解决你的问题)

plus.navigator.setStatusBarStyle('UIStatusBarStyleBlackOpaque')

我直接建官网的实例 然后就在 设置了一下 结果运行也是会变白色一下 然后又变回黑色

onShow: function() {  
    console.log('App Show')  
    plus.navigator.setStatusBarStyle('UIStatusBarStyleBlackOpaque')  
},

重现步骤

[步骤]
[结果]
[期望]
[如果语言难以表述清晰,拍一个视频或截图,有图有真相]

IDE运行环境说明 uni-app运行环境说明 App运行环境说明
[HBuilder 或 HBuilderX] [运行端是h5或app或某个小程序] [Android版本号] [iOS版本号] [手机型号] [模拟器型号]

附件

[IDE问题请提供HBuilderX运行日志。菜单帮助-查看运行日志,点右键打开文件所在目录,将log文件压缩成zip包上传]
[App问题请提供可重现问题的代码片段,你补充的细一点,问题就解决的快一点]
[App安装包或H5地址]
[可重现代码片段]

联系方式

[QQ]


更多关于uni-app 页面设置setStatusBarStyle后会被还原的实战教程也可以访问 https://www.itying.com/category-93-b0.html

7 回复

onShow时,页面还未渲染完毕,只是刚开始做进入动画。 你可以在onReady里调整,这个是页面第一次渲染完毕

更多关于uni-app 页面设置setStatusBarStyle后会被还原的实战教程也可以访问 https://www.itying.com/category-93-b0.html


在onReady里面执行也还是一样的 先变一下 然后变回

回复 1***@qq.com: 我也遇到这个问题了,切换tab页再回来就被还原了,你后来有其他的解决办法了吗

解决了吗?各位兄弟,我放在onReady里面,第一次有效果,切换了一下tabbar,就还原了

请问解决了吗,现在还有此问题

我现在的情况是 : 如果是tab页的话,切换会还原,那么加在这里 onTabItemTap(){ / #ifdef APP-PLUS / plus.navigator.setStatusBarStyle(this.them === “dark” ?“light”:“dark”); // #endif }
搭配onready使用

这是uni-app中常见的状态栏样式重置问题。在App端,系统会在页面切换时自动重置状态栏样式。建议在onShow和onReady生命周期中都设置状态栏样式:

onReady() {
  plus.navigator.setStatusBarStyle('UIStatusBarStyleBlackOpaque')
},
onShow() {
  plus.navigator.setStatusBarStyle('UIStatusBarStyleBlackOpaque')
}

如果问题依旧,可能是原生层配置冲突导致的。检查manifest.json中是否配置了透明状态栏:

"app-plus": {
  "statusbar": {
    "style": "dark"
  }
}

也可以尝试在pages.json中对特定页面配置:

{
  "path": "pages/index/index",
  "style": {
    "navigationBarTextStyle": "black"
  }
}
回到顶部