flutter 踩坑小计: amap_base 地图缩放 zoom 设置无效的问题
这种问题估计也就我这种菜鸡能遇到了,因为我问了一些大佬,他们完全没遇到这类的问题。
如果你也遇到了,希望这篇文章能帮到你,倘若还不能解决你的问题,可以留言,我们共同研究。
问题:同样的插件,为什么偏偏我能遇到这种邪门问题,别人的就一帆风顺?
答案:菜是原罪!
场景描述:
在一个详情页面,需要展示地图,然后在真机上面调试的时候,地图显示的缩放比例完全跟zoom值不搭嘎,不管我的zoom值为5或是为15
经过几个小时的排查测试以及猜想,并且对一位大佬穷追猛问,之后发现是 addMarker 添加标记点引起的。
我也不知道为什么。
也想不明白为什么。
解决方案:
加延迟,在 addMarker 之后加延迟设置 zoom 值!
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 设置无效的问题的更多相关文章
- Linux/Docker 中使用 System.Drawing.Common 踩坑小计
前言 在项目迁移到 .net core 上面后,我们可以使用 System.Drawing.Common 组件来操作 Image,Bitmap 类型,实现生成验证码.二维码,图片操作等功能.Syste ...
- ReactNative 踩坑小计
使用ES6語法編寫Component時綁定事件需要用this.MethodName.bind(this),否則MethodName中無法使用this <TouchableHighlight on ...
- flutter 踩坑总结
导入第三方库踩坑小结: (编译器:VsCode) ( 打算在学习中,使用flutter重新自己的项目,遇到比较特殊的坑,就先记录一下,持续更新中) 1.把第三方库 写入pubspec.yaml文件中 ...
- Flutter踩坑日记:接入现有iOS项目
之前搞的Flutter版工具链已经弄完了,感兴趣的朋友可以围观下,Android版本dio库(v2.0.14)发送网络请求老是报错,去官方提了issue还没回,于是今天搞一下把Flutter模块接入到 ...
- Flutter踩坑日记:Tab导航栏保持子页面状态
最近应邀票圈小伙伴躺坑Flutter,项目初步雏形完结.以原来的工具链版本为基础做了Flutter版本,不过后面还是需要优化下项目接入Redux,以及扩展一些Native方法. 这里记录一下在开发过程 ...
- Flutter 踩坑之build函数返回了null
今天遇到一个bug,内容都正常显示没问题,但是控制台里报错,如图: 翻译了下,说是函数不能返回空值,搜索了下,网上相同问题的是少写了个return,我检查了下也没发现少return的,后来突然发现if ...
- Flutter踩坑日记:解除依赖
Flutter已经融入工程有一段时间了,由于团队人数较少,所以一直没有管和原有工程解依赖的问题,今天有时间正好把这个问题给搞了. 一.分析 首先,直接忽略上一篇<接入现有iOS项目>的所有 ...
- Mac 安装flutter 踩坑记
完整版请看链接: http://b36d5043.wiz03.com/share/s/2Prl132RpQ3x2XpA4I2oTa2204K0FF0vB4J42tWIEQ04UrAg 首先下载flut ...
- Flutter 踩坑集
1.Flutter Packages Get 一直重试或一直失败的问题 翻车原因:万恶之源-----天朝的长城防火墙 解决方法 详见:https://flutter.dev/community/chi ...
随机推荐
- Java8系列 (三) Spliterator可分迭代器
本文转载自 jdk8 Stream 解析2 - Spliterator分割迭代器. 概述 我们最为常见的流的产生方式是 collection.stream(), 你点开Stream()方法, 他是通过 ...
- NIO开发Http服务器(2):项目结构
最近学习了Java NIO技术,觉得不能再去写一些Hello World的学习demo了,而且也不想再像学习IO时那样编写一个控制台(或者带界面)聊天室.我们是做WEB开发的,整天围着tomcat.n ...
- 11.15java实习生面试总结
坐了两个小时的车,到了面试地点面了十五分钟左右就结束了,心里有一点难受,不过这也是刚开始,后面的路还长着呢,所以先把面试官问的题目记录下来. 1.C语言能否跨平台? 虽然我面的是java实习生,但是因 ...
- 【洛谷 P2051】 [AHOI2009]中国象棋(DP)
题目链接 首先想到状压dp,但是\(n,m\)高达100,怎么压? 容易发现,每行每列最多两个象棋,否则就直接gg了. 一个巧妙的设置状态的方式是,只需要记录到当前行有多少列是放了1个炮和2个炮. 然 ...
- Java并发多线程面试题 Top 50
不管你是新程序员还是老手,你一定在面试中遇到过有关线程的问题.Java语言一个重要的特点就是内置了对并发的支持,让Java大受企业和程序员的欢迎.大多数待遇丰厚的Java开发职位都要求开发者精通多线程 ...
- 当ajax都完成后执行方法
<!DOCTYPE html><html> <head> <meta charset="UTF-8"> <title>& ...
- 【mysql】centos7下mysql的安装以及基本操作
centos7使用的MariaDB,替代了早期版本默认的MySQL.MariaDB是MySQL的一个分支,由开源社区维护,采用GPL授权许可,且MariaDB完全贱人MySQL. 检查centos7下 ...
- RedHat 6.3安装MySQL-server-5.6.13-1.el6.x86_64.rpm
在RedHat 6.3下安装MySQL-server-5.6.13-1.el6.x86_64.rpm 首先下载下面三个文件: MySQL-client-5.6.13-1.el6.x86_64.rpm ...
- 基于335X平台Linux交换芯片驱动开发
基于335X平台Linux交换芯片驱动开发 一.软硬件平台资料 1.开发板:创龙AM3359核心板,网口采用RMII形式. 2.Kernel版本:4.4.12,采用FDT 3.交换芯片MARVEL ...
- XSLT知识点【一】
XSL 指扩展样式表语言(EXtensible Stylesheet Language). 它起始于 XSL,结束于 XSLT.XPath 以及 XSL-FO. 起始于 XSL------CSS = ...