收藏
回答

微信小程序自定义头部栏高度问题如何解决?

在开发者工具中及真机中通过getSystemInfo获取高度是适配的,但是当操作小程序进入后台,过长期后重新从后台打开,有时会出现高度获取不到问题,然后出现高度塌陷,做了传值判断也是会塌。

回答关注问题邀请回答
收藏

1 个回答

  • Admin ²º²³
    Admin ²º²³
    2020-03-20

    小程序启动时获取,然后保存到全局变量里,onHide后再进入直接读取全局变量,不用再重新获取挖

    2020-03-20
    有用 4
    回复 34
    • 张玉峰
      张玉峰
      2020-03-20
      我是这样写的,页面直接读取的globalData中的数据,但是还是会出现塌陷,我从刚开始只在onLaunch中获取数据,出现问题后在onshow进行了判断重新获取,是因为onshow的问题吗?
      2020-03-20
      回复
    • Admin ²º²³
      Admin ²º²³
      2020-03-20回复张玉峰
      那可能是其他原因。
      你最好亲自重现下这个BUG,同时打印日志,看BUG时这个值是否是对的,如果是不对,找找什么原因,相关的逻辑链地方都打印下日志排除原因。
      你上图这获取手机信息代码没问题。
      2020-03-20
      1
      回复
    • 张玉峰
      张玉峰
      2020-03-20回复Admin ²º²³
      因为这个是偶发性,在开发者工具中及真机测试调试模式下不会出现,只有在正式版和体验版并且特殊操作(将小程序挂入后台,过一段后重新打开并偶尔出现),这种情况我该如何排查呢,好像是无法通过console.log打印日志吧?
      2020-03-20
      回复
    • Admin ²º²³
      Admin ²º²³
      2020-03-20回复张玉峰
      这样吧,那可能还是getSystemInfo偶发性获取不到数据导致相关数据为0了。偶发性这个应该恩机型有关,不好排查,这样吧。弄个灾难补救方案吧:
      就是在onLaunch里如果偶发性获取不到(getSystemInfo出现fail或者success了,但是相关数据为0或null或者小于0之类的,你自己定这个阈值)时,咱们弄个定时器重新获取。直到获取成功,另外可以设置首次获取成功后setStorage,把相关信息写入本机Storage下,下次如果还获取失败,直接从Storage读取,或者以后就直接读Storage就行了。
      2020-03-20
      2
      回复
    • 张玉峰
      张玉峰
      2020-03-20回复Admin ²º²³
      当时我想到这个可能是获取不到问题,所以在使用数据的时候对其进行了三目判断,获取不到的话使用默认值,但是目前是默认值也未使用。您的那个方法我试一下
      2020-03-20
      回复
    查看更多(29)
登录 后发表内容
问题标签