Flutter GoogleMap从后台恢复后为空白

问题描述 投票:0回答:1

我遇到以下问题:我的Flutter应用程序使用GoogleMap。最初,地图加载正常。但是,如果我将应用程序置于后台并稍后再恢复,则地图将保持空白。仍然显示Google徽标,就像未指定API密钥时一样。我的多边形叠加层也没有显示。

该行为无法可靠地再现。有时,在应用程序在后台运行数小时后,地图加载正常,有时,几分钟后地图为空白。到目前为止,我只在Android上看到了这种行为。

没有特定的日志输出指示错误。

有关如何解决/解决此问题的任何想法?

我在此处向屏幕截图提交了问题:https://github.com/flutter/flutter/issues/40284

编辑1:我能够使用GoogleMap作为根窗口小部件并没有任何多边形/功能叠加来重现此内容。另外,我发现在某个点上疯狂放大会“重新激活”地图(突然,地图再次可见)。这可能是底层Android Google Maps SDK的已知问题吗?

编辑2:我发现地图仍在反应(例如,点击/手势侦听器仍会触发)。而且,地图并不是真的是空的,它只是变成半透明的,所以屏幕上会显示地图后面的小部件。

android google-maps flutter google-maps-android-api-2 google-maps-flutter
1个回答
0
投票

不是核心问题的解决方案,但是我可以通过创建插件项目的派生并按如下所示修改GoogleMapController.java来解决此错误:

@Override
  public void onActivityResumed(Activity activity) {
    if (disposed || activity.hashCode() != registrarActivityHashCode) {
      return;
    }
    mapView.onResume();
    // Workaround for https://github.com/flutter/flutter/issues/40284
    // This apparently forces a re-render of the map.
    if (googleMap != null) {
      googleMap.setMapType(googleMap.getMapType());
    }
  }

现在,在每次恢复事件中,地图都将重新呈现。

© www.soinside.com 2019 - 2024. All rights reserved.