android - 从后台恢复后,Flutter GoogleMap 为空白

标签 android google-maps flutter google-maps-android-api-2 google-maps-flutter

我遇到以下问题:我的 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/

相关文章:

android - Flutter 默认启动 View 淡入淡出动画

android - 刷新 fragment 中 listView 的 Item 的 TextSize

android - 由 GoogleMaps 引起的稳定发布应用程序中无法解释的 IncompatibleClassChangeError

algorithm - 逆向工程 Google "Write a Review"链接 URL

flutter - 如何在 Dart/Flutter 中扩展一个类

flutter - 在 Flutter 中将 Stream 转换为 Future

android - 如何从堆栈中删除特定 Activity

Android:最小化和恢复 Activity

android - NullPointerException 安卓崩溃

javascript - MarkerCluster Google map 未对我的标记进行分组