我遇到以下问题:我的 Flutter 应用使用 GoogleMap。 map 最初加载得很好。但是,如果我将应用程序置于后台并稍后恢复,则 map 将保持空白。 Google Logo 仍然显示,就像未指定 API key 时一样。我的多边形叠加层也没有出现。
该行为不能可靠地重现。有时,应用程序在后台运行数小时后 map 加载正常,有时 map 在几分钟后为空白。到目前为止,我只在 Android 上看到过这种行为。
没有指示错误的特定日志输出。
任何想法如何解决/解决这个问题?
我在这里提交了一个截图问题:https://github.com/flutter/flutter/issues/40284
编辑 1:
我能够使用 GoogleMap 作为根小部件来重现这一点,并且也没有任何多边形/特征覆盖。此外,我发现在某些时候疯狂放大 map 会“重新激活” map (突然 map 再次变得可见)。这可能是底层 Android Google Maps SDK 的已知问题吗?
编辑 2:
我发现 map 仍在 react (例如,点击/手势监听器仍会触发)。此外, map 并不是真正的空,它只是变得半透明,因此屏幕会显示 map 后面的任何小部件。
最佳答案
我发现如果您点击标记或更改 map 重新渲染的样式
class TheWidgetThatHasTheMap with WidgetsBindingObserver {
//...your code
@override
void didChangeAppLifecycleState(AppLifecycleState state) {
if (state == AppLifecycleState.resumed) {
controller.setMapStyle("[]");
}
}
}
关于android - 从后台恢复后,Flutter GoogleMap 为空白,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59374010/