这种问题估计也就我这种菜鸡能遇到了,因为我问了一些大佬,他们完全没遇到这类的问题。

如果你也遇到了,希望这篇文章能帮到你,倘若还不能解决你的问题,可以留言,我们共同研究。

问题:同样的插件,为什么偏偏我能遇到这种邪门问题,别人的就一帆风顺?

答案:菜是原罪!

场景描述:

在一个详情页面,需要展示地图,然后在真机上面调试的时候,地图显示的缩放比例完全跟zoom值不搭嘎,不管我的zoom值为5或是为15

经过几个小时的排查测试以及猜想,并且对一位大佬穷追猛问,之后发现是 addMarker 添加标记点引起的。

我也不知道为什么。

也想不明白为什么。

解决方案:

加延迟,在 addMarker 之后加延迟设置 zoom 值!


    AMapController _controller;
  Widget _mapShowWidget(){
return AMapView(
onAMapViewCreated: (controller) async{
_controller = controller;
_requestLocationPermissions();
},
amapOptions: AMapOptions(
compassEnabled: false,
zoomControlsEnabled: false,
logoPosition: LOGO_POSITION_BOTTOM_RIGHT,
camera: CameraPosition(
target: LatLng(latitude, longitude),
zoom: ,
),
),
);
} Future<void> _requestLocationPermissions() async {
// 添加标记点
_controller.addMarker(
MarkerOptions(
icon: 'lib/assets/image/locamark.png',
position: LatLng(latitude, longitude),
displayLevel:
),
);
reGetCountdown();
} int count = ;
// 延迟加载
Timer _countdownTimer;
void reGetCountdown() {
// Timer的第一秒倒计时是有一点延迟的,为了立刻显示效果可以添加下一行。
// 添加200毫秒的延迟
_countdownTimer = new Timer.periodic(new Duration(milliseconds: ), (timer) {
setState(() {
count = count - ;
});
if(count == ){
_controller.setZoomLevel(); // 设置 zoom
setState(() {
_countdownTimer.cancel();
});
}
});
}

问题到此算是解决了。原理我也说不清道不明。

简单解释就是,既然 addMarker 的时候会导致 zoom 失效,那就在 addMarker 之后再重新设置 zoom (setZoomLevel 写在 addMarker 之后也不行)

flutter 踩坑小计: amap_base 地图缩放 zoom 设置无效的问题的更多相关文章

  1. Linux/Docker 中使用 System.Drawing.Common 踩坑小计

    前言 在项目迁移到 .net core 上面后,我们可以使用 System.Drawing.Common 组件来操作 Image,Bitmap 类型,实现生成验证码.二维码,图片操作等功能.Syste ...

  2. ReactNative 踩坑小计

    使用ES6語法編寫Component時綁定事件需要用this.MethodName.bind(this),否則MethodName中無法使用this <TouchableHighlight on ...

  3. flutter 踩坑总结

    导入第三方库踩坑小结: (编译器:VsCode) ( 打算在学习中,使用flutter重新自己的项目,遇到比较特殊的坑,就先记录一下,持续更新中) 1.把第三方库 写入pubspec.yaml文件中 ...

  4. Flutter踩坑日记:接入现有iOS项目

    之前搞的Flutter版工具链已经弄完了,感兴趣的朋友可以围观下,Android版本dio库(v2.0.14)发送网络请求老是报错,去官方提了issue还没回,于是今天搞一下把Flutter模块接入到 ...

  5. Flutter踩坑日记:Tab导航栏保持子页面状态

    最近应邀票圈小伙伴躺坑Flutter,项目初步雏形完结.以原来的工具链版本为基础做了Flutter版本,不过后面还是需要优化下项目接入Redux,以及扩展一些Native方法. 这里记录一下在开发过程 ...

  6. Flutter 踩坑之build函数返回了null

    今天遇到一个bug,内容都正常显示没问题,但是控制台里报错,如图: 翻译了下,说是函数不能返回空值,搜索了下,网上相同问题的是少写了个return,我检查了下也没发现少return的,后来突然发现if ...

  7. Flutter踩坑日记:解除依赖

    Flutter已经融入工程有一段时间了,由于团队人数较少,所以一直没有管和原有工程解依赖的问题,今天有时间正好把这个问题给搞了. 一.分析 首先,直接忽略上一篇<接入现有iOS项目>的所有 ...

  8. Mac 安装flutter 踩坑记

    完整版请看链接: http://b36d5043.wiz03.com/share/s/2Prl132RpQ3x2XpA4I2oTa2204K0FF0vB4J42tWIEQ04UrAg 首先下载flut ...

  9. Flutter 踩坑集

    1.Flutter Packages Get 一直重试或一直失败的问题 翻车原因:万恶之源-----天朝的长城防火墙 解决方法 详见:https://flutter.dev/community/chi ...

随机推荐

  1. Linux用户管理的基本概念

    Linux系统如何区别不同的用户呢?可以很自然地想到,使用不同的用户名应该是一个好主意,就像真实世界中每个人都有名字一样.但“用户名”只是一种方便让人读的字符串,对机器来说是没有意义的.事实上,Lin ...

  2. Hadoop之MapReduce流程

    hadoopMapReduce 1. MapReduce流程 2. Shuffle流程 1. MapReduce流程 MapReduce流程 切片: 对数据进行逻辑划分,默认大小是一个block块大小 ...

  3. Java调用WebService方法总结(2)--JAX-WS调用WebService

    用JAX-WS(Java API for XML Web Services)调用WebService不需要引入其他框架,都是JDK自带的:文中所使用到的软件版本:Java 1.8.0_191.Dom4 ...

  4. 【转载】Javascript使用Math.random()随机数函数生成1至1000的随机数

    在Javascript代码编写过程中,有时候我们需要使用Js来生成随机数,清除ajax的get请求缓存的时候我们会带上一个随机数来解决此问题,此外在其他应用中也可能使用到随机数,在Javascript ...

  5. Part_four:redis主从复制

    redis主从复制 1.redis主从同步 Redis集群中的数据库复制是通过主从同步来实现的 主节点(Master)把数据分发从节点(slave) 主从同步的好处在于高可用,Redis节点有冗余设计 ...

  6. Vue的11个生命周期函数的用法

    实例的生命周期函数(官方11个):beforeCreate:在实例部分(事件/生命周期)初始化完成之后调用.created:在完成外部的注入/双向的绑定等的初始化之后调用.beforeMount:在页 ...

  7. 8. :before 和 ::before 区别?【CSS】

    单冒号(:)用于CSS3伪类 双冒号(::)用于CSS3伪元素 对于CSS2之前已有的伪元素,比如:before,单冒号和双冒号的写法::before作用是一样的.

  8. 智表ZCELL产品发布企业版

    为了满足部分企业用户无限分发的需要,智表插件在专业版基础上推出企业版本(http://zcell.net/productinfo.html),功能与专业版本保持一致.授权方式采用提供企业客户授权工具, ...

  9. C# NPOI Excel 合并单元格和取消单元格

    1.合并单元操作 //合并单元格 /** 第一个参数:从第几行开始合并 第二个参数:到第几行结束合并 第三个参数:从第几列开始合并 第四个参数:到第几列结束合并 **/ CellRangeAddres ...

  10. python下调用c语言代码

    1)首先,创建一个.c文件,其大体内容如下: 2 #include <Python.h> 99 char * extract(char * path)                    ...