收藏
回答

bindregionchange安卓地图抖动

一拖动地图,整个地图都会抖动,ios是正常的,这是怎么回事?bug吗?

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

3 个回答

  • allen-黄河水
    allen-黄河水
    2022-04-19

    要注意一下bindregionchange的事件入参,里面有这两个字段:

    type/causedBy

    需要根据这两个字段来做数据的更新:

    type一般有begin和end,一般在end中更新数据

    还有就是causedBy这个,就是用来标记是什么导致的地图视图更新有drag/scale/update,前两个好理解,这个是用户行为,最后一个是绑定的数据变更导致的。

    导致发生抖动的原因很可能是只对,type做了判断,未对causedBy做判断:

    regionChange(e) {
      if (e.type === end) {
        // 未对causedBy进行判断,导致在对数据改变时,触发了update类型的改变,于是update又触发了regionChange,如此一直循环下去,所以发生了抖动
        // 解决方法就是对causedBy进行判断,只要causedBy !== 'update'即可放行修改数据,这就不会造成事件反复触发的抖动了。
        this.setData({
          center: {lat: 30, lon: 30}
        })
      }
    }    
    


    2022-04-19
    有用
    回复
  • 2018-02-02

    解决了吗?


    2018-02-02
    有用
    回复
  • 小蒿🇨🇳
    小蒿🇨🇳
    2018-01-25

    请问解决了吗?我也遇到这个问题了

    2018-01-25
    有用
    回复
登录 后发表内容