当前状态栏和导航栏均采用uniapp提供的标准用法,无任何自定义组件。
function initTheme(theme) {
const color = themeObj[theme]
const frontColor = theme === 'white' ? '#000000' : '#ffffff'
setTimeout(() => {
uni.setNavigationBarColor({
frontColor,
backgroundColor: color
})
}, 50)
}
- 发布:2020-11-12 10:45
- 更新:2020-12-21 10:36
- 阅读:2081
【报Bug】uni.setNavigationBarColor设置frontColor黑色,backgroundColor白色时,最上方的状态栏字体颜色有时黑有时白,无法控制
产品分类: uniapp/App
PC开发环境操作系统: Windows
PC开发环境操作系统版本号: win10
HBuilderX类型: 正式
HBuilderX版本号: 2.9.8
手机系统: Android
手机系统版本号: Android 10
手机厂商: OPPO
手机机型: 所有手机
页面类型: vue
打包方式: 云端
项目创建方式: HBuilderX
示例代码:
操作步骤:
设置为其他非白色的主题色时,状态栏字体永远为白色,无任何问题。
只要主题切换为白色,调用uni.setNavigationBarColor,就会出现相关问题。
使用plus.navigator.setStatusBarStyle("dark")也是一样,点击导航栏当前页面tab,依然是会将状态栏字体从黑色切换成白色
设置为其他非白色的主题色时,状态栏字体永远为白色,无任何问题。
只要主题切换为白色,调用uni.setNavigationBarColor,就会出现相关问题。
使用plus.navigator.setStatusBarStyle("dark")也是一样,点击导航栏当前页面tab,依然是会将状态栏字体从黑色切换成白色
预期结果:
无论怎么操作,白主题状态栏字体黑色,其他主题状态栏字体白色
无论怎么操作,白主题状态栏字体黑色,其他主题状态栏字体白色
实际结果:
白主题,状态栏字体颜色异常。点导航栏当前页tab,状态栏字体从黑变白
白主题,状态栏字体颜色异常。点导航栏当前页tab,状态栏字体从黑变白
bug描述:
APP因公司需求,要求支持多种主题颜色。其中在切换到白色时,出现了问题。
uni.setNavigationBarColor设置frontColor黑色,backgroundColor白色时,最上方的状态栏字体颜色有时黑有时白,无法控制。
当状态栏电池及wifi颜色为白时,跟标题背景同色,即看不到电池状态和wifi信号图标了。
当在一个页面中状态栏字体颜色为黑时,点击下方导航栏同一个页面的tab,状态栏字体颜色会变成白色。
尝试了各种办法,加延迟,尝试plus.navigator.setStatusBarStyle("dark")等均无效果。
8***@qq.com (作者) - 90IT WEB
这个demo写了一个白主题和一个蓝主题。
BUG有点奇怪,有时候蓝主题出BUG,有时候白主题出BUG。
就是点击下方当前页导航的tab,上面的电池还有wifi那些字体都会由白变黑或由黑变白。
总之是无法控制。
+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