Flutter 地图在携程的最佳实践( 五 )


Future<bool> setAllMarkersVisibleWithPadding(List<BMFMarker> markers,BuildContext context, {EdgeInsets insets = const EdgeInsets.all(20.0),}) async {final bounds = getMarkersVisibleMapBounds(markers);if (bounds == null) return false;if (Util.isAndroid()) {final scale = MediaQuery.of(context).devicePixelRatio;insets = EdgeInsets.only(top: insets.top * scale,bottom: insets.bottom * scale,left: insets.left * scale,right: insets.right * scale);}return await setVisibleMapRectWithPadding(visibleMapBounds: bounds, insets: insets, animated: true);}七、总结Flutter 地图插件基于Native地图 Android 和 iOS SDK 二次封装而成,通过在 Flutter 使用MethodChannel交互实现地图的显示、交互、覆盖物绘制和事件响应等功能 。混合项目接入Flutter地图容易发生问题的点,基本集中在PlatformView这一块 。通常是容器和View的事件、生命周期同步问题 。
本文主要介绍FlutterBoost的混合工程,在接入Flutter地图插件遇到的各种问题和解决方案 。阐述了PlatformView的工作原理,方便我们更好的理解Flutter地图插件 。同时也介绍了如何用Android Studio 自带的工具直观地看内存异常 。并且推荐leakcanary定位内存溢出的类和方法,希望对你接入Flutter地图插件有一定的帮助 。

【Flutter 地图在携程的最佳实践】


推荐阅读