从后台恢复后颤动GoogleMap为空

Flutter GoogleMap is blank after resuming from background(从后台恢复后颤动GoogleMap为空)

本文介绍了从后台恢复后颤动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为空的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持编程学习网!

本文标题为:从后台恢复后颤动GoogleMap为空

基础教程推荐