本文介绍了从后台恢复后颤动GoogleMap为空的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我遇到以下问题:我的Ffltter应用程序使用的是GoogleMap。地图最初加载得很好。然而,如果我将应用程序放到后台并在一段时间后恢复,地图仍然是空白的。谷歌徽标仍然显示,就像没有指定API密钥时发生的那样。我的多边形覆盖也没有显示。
该行为不能可靠地重新验证。有时,应用程序在后台运行了几个小时后,地图加载正常,有时几分钟后地图就空白了。到目前为止,我只在Android上看到过这种行为。
没有指示错误的特定日志输出。
有什么办法可以解决/解决这个问题吗?
我在这里提交了一个截图问题:https://github.com/flutter/flutter/issues/40284
编辑1:我可以使用GoogleMap作为根小部件,并且没有任何多边形/要素覆盖。此外,我还发现,在某个时候疯狂地放大地图会让地图恢复活力(突然地图又变得可见了)。这是否可能是底层Android Google Maps SDK的已知问题?
编辑2:我发现地图仍在反应(例如,轻触/手势监听者仍在触发)。此外,地图并不是真的空的,它只是变得半透明,所以屏幕上显示了地图后面的小工具。
推荐答案
我发现,如果您点击标记或更改样式,地图将重新呈现
class TheWidgetThatHasTheMap with WidgetsBindingObserver {
//...your code
@override
void didChangeAppLifecycleState(AppLifecycleState state) {
if (state == AppLifecycleState.resumed) {
controller.setMapStyle("[]");
}
}
}
这篇关于从后台恢复后颤动GoogleMap为空的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!