收藏
回答

在页面生命周期回调中设置窗口背景色的bug

框架类型 问题类型 API/组件名称 终端类型 微信版本 基础库版本
小程序 Bug wx.setBackgroundColor 客户端 6.7.3 2.3.1

无论是首次进入小程序,还是从其他页面跳转至目标页触发的onShow中,调用wx.setBackgroundColor设置backgroundColorTop都有大概率无效,也不会触发wx.setBackgroundColor的fail回调。


例外的是,如果先将微信切至后台,再切至前台,导致页面触发onShow,就不存在这种问题。


经过测试:

onShow中console.log()表明该生命周期是始终触发的,所以是wx.setBackgroundColor方法的问题。

使用setTimeout延迟调用wx.setBackgroundColor不能解决。

同样的时机,调用wx.setNavigationBarTitle或wx.setNavigationBarColor并没有问题。



看图,注意下拉刷新时的backgroundColorTop

(这里演示的是微信切至后台,再切至前台触发onShow,wx.setBackgroundColor才生效,此图中的导航栏颜色和标题都是在onShow时调用相应方法设置的,唯独wx.setBackgroundColor无效




ps: 我知道可以在json里设置,但需求是这些颜色是可以动态设置的,所以需要使用wx.setBackgroundColor

最后一次编辑于  2018-10-24
回答关注问题邀请回答
收藏

4 个回答

  • hexford~🐶
    hexford~🐶
    2018-10-26

    试了下加setTimeout后可以了,应该是设置的时候页面还没有渲染好导致的

    2018-10-26
    有用
    回复 1
    • Maverick
      Maverick
      2018-10-26

      好吧,延迟200ms是解决了 - -    之前测试的100ms没用

      2018-10-26
      回复
  • hui
    hui
    2019-12-09

    微信:7.0.8 基础库:2.9.4 问题还是同样存在的。请问该问题目前是怎么样的状态呢?有对应问题跟踪系统可以查看最新状态?

    2019-12-09
    有用
    回复
  • 人生如戏
    人生如戏
    2018-10-25

    我也遇到了这样的问题,,,设置backgroundColorTop不生效,backgroundColorBottom是生效的


    2018-10-25
    有用
    回复
  • 灵芝
    灵芝
    2018-10-24

    麻烦提供能复现问题的代码片段(https://developers.weixin.qq.com/miniprogram/dev/devtools/minicode.html)

    2018-10-24
    有用
    回复 1
登录 后发表内容