Tencent / weui-wxss

A UI library by WeChat official design team, includes the most useful widgets/modules.
Other
15.1k stars 5.27k forks source link

关于深色模式wx.reLaunch跳转问题 #148

Closed Y-A-K-E closed 3 years ago

Y-A-K-E commented 4 years ago

比如demo中 在首页,直接跳转tabbar页. wx.reLaunch({url: '../example/tabbar/tabbar'})

两个页面切换中间有短暂的亮白色背景.

darkhorse98 commented 4 years ago

我也发现了这个问题,据我分析,问题出在themeChanged.js中: module.exports = { data: { theme: ‘’, 这里页面默认theme为空值,css将此解释为light模式,页面onLoad之前以此数据渲染页面,表现为白色背景;当onLoad中执行this.themeChanged(app.globalData.theme)时,setData改变页面theme值引发页面重新渲染,但是这是个异步过程,所以当为dark模式时,页面跳转你有时会看见短暂的白色背景。解决办法如下,设置页面的theme为当前的显示模式: module.exports = { data: { theme: getApp().globalData.theme,

BearJ commented 4 years ago

@Y-A-K-E reLaunch这种情况下的确会白,但如果是想首次进入小程序即用黑色背景,可以在app.wxss下加入下面代码:

@media (prefers-color-scheme: dark) {
    page {
        background-color: #111111;
    }
}