8***@qq.com
8***@qq.com
  • 发布:2020-11-12 10:45
  • 更新:2020-12-21 10:36
  • 阅读:2081

【报Bug】uni.setNavigationBarColor设置frontColor黑色,backgroundColor白色时,最上方的状态栏字体颜色有时黑有时白,无法控制

分类:uni-app

产品分类: uniapp/App

PC开发环境操作系统: Windows

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

HBuilderX类型: 正式

HBuilderX版本号: 2.9.8

手机系统: Android

手机系统版本号: Android 10

手机厂商: OPPO

手机机型: 所有手机

页面类型: vue

打包方式: 云端

项目创建方式: HBuilderX

示例代码:

当前状态栏和导航栏均采用uniapp提供的标准用法,无任何自定义组件。
function initTheme(theme) {
const color = themeObj[theme]
const frontColor = theme === 'white' ? '#000000' : '#ffffff'
setTimeout(() => {
uni.setNavigationBarColor({
frontColor,
backgroundColor: color
})
}, 50)
}

操作步骤:

设置为其他非白色的主题色时,状态栏字体永远为白色,无任何问题。
只要主题切换为白色,调用uni.setNavigationBarColor,就会出现相关问题。
使用plus.navigator.setStatusBarStyle("dark")也是一样,点击导航栏当前页面tab,依然是会将状态栏字体从黑色切换成白色

预期结果:

无论怎么操作,白主题状态栏字体黑色,其他主题状态栏字体白色

实际结果:

白主题,状态栏字体颜色异常。点导航栏当前页tab,状态栏字体从黑变白

bug描述:

APP因公司需求,要求支持多种主题颜色。其中在切换到白色时,出现了问题。
uni.setNavigationBarColor设置frontColor黑色,backgroundColor白色时,最上方的状态栏字体颜色有时黑有时白,无法控制。
当状态栏电池及wifi颜色为白时,跟标题背景同色,即看不到电池状态和wifi信号图标了。
当在一个页面中状态栏字体颜色为黑时,点击下方导航栏同一个页面的tab,状态栏字体颜色会变成白色。
尝试了各种办法,加延迟,尝试plus.navigator.setStatusBarStyle("dark")等均无效果。

2020-11-12 10:45 负责人:无 分享
已邀请:
8***@qq.com

8***@qq.com (作者) - 90IT WEB

没人的嘛。。大家就没有切换主题的需求么~

DCloud_UNI_LXH

DCloud_UNI_LXH

可以提供一个简单可复现的Demo吗?

  • 8***@qq.com (作者)

    demo已经上传了,在上一条消息里test.rar,麻烦您帮看一下。100%可以复现。麻烦了,多谢多谢

    2020-11-13 11:48

8***@qq.com

8***@qq.com (作者) - 90IT WEB

这个demo写了一个白主题和一个蓝主题。
BUG有点奇怪,有时候蓝主题出BUG,有时候白主题出BUG。
就是点击下方当前页导航的tab,上面的电池还有wifi那些字体都会由白变黑或由黑变白。
总之是无法控制。

DCloud_UNI_LXH

DCloud_UNI_LXH

确认bug,已加分,下版修复

芜湖一

芜湖一

+1恶心,我tabbar 栏首次进入状态栏字体颜色是白色, 切换之后才会变成黑色,搞得我莫名其妙

  • 8***@qq.com (作者)

    我当前的解决方案是初使化执行plus.navigator.setStatusBarStyle,在tabbar切换时页面内监听onTabItemTap,这个钩子里再次执行plus.navigator.setStatusBarStyle。虽然方法有点笨,但在官方修复BUG之前,这个方法可以解决咱们碰到的问题。

    2020-11-18 10:41

  • 芜湖一

    回复 8***@qq.com: 我昨天测试了一下,发现如果啥都不用空白页面是正常的,但是带入组件或者uview 的tabs 组件就会出现问题,太细的我也懒得找了,就一个tabbar 页面出这个问题,我也是这种思路用 uniapp 的api uni.setNavigationBarColor({

    frontColor:'#000000',

    backgroundColor:"#E56149"

    })

    给改了,我是小程序出bug,具体是我的问题还是官方的还真不好说,因为我删除组件就又没事了,奇奇怪怪的

    2020-11-18 16:34

DCloud_UNI_GSQ

DCloud_UNI_GSQ

HBuilderX 3.0.0+ 已优化

该问题目前已经被锁定, 无法添加新回复