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

本站部分内容来源互联网,如果有图片或者内容侵犯您的权益请联系我们删除!

相关文档推荐

How to target newer versions in .gitlab-ci.yml using auto devops (java 11 instead of 8 and Android 31 instead of 29)(如何在.gitlab-ci.yml中使用自动开发工具(Java 11而不是8,Android 31而不是29)瞄准较新的版本)
Android + coreLibraryDesugaring: which Java 11 APIs can I expect to work?(Android+core LibraryDesugering:我可以期待哪些Java 11API能够工作?)
How to render something in an if statement React Native(如何在If语句中呈现某些内容Reaction Native)
How can I sync two flatList scroll position in react native(如何在本机Reaction中同步两个平面列表滚动位置)
Using Firebase Firestore in offline only mode(在仅脱机模式下使用Firebase FiRestore)
Crash on Google Play Pre-Launch Report: java.lang.NoSuchMethodError(Google Play发布前崩溃报告:java.lang.NoSuchMethodError)