gpt4 book ai didi

android - 什么时候可以在 OnMapReadyCallback 的 onMapReady 之后调用 GoogleMap.moveCamera?

转载 作者:可可西里 更新时间:2023-11-01 19:06:38 24 4
gpt4 key购买 nike

当前的 Android Google Maps API 要求您在访问 GoogleMap 之前使用 OnMapReadyCallback 调用 mapFragment.getMapAsync。我假设一旦你有了 GoogleMap 就可以安全地调用 moveCamera() 但我看到崩溃报告中有一个 IllegalStateException map 大小不能为 0。很可能, map View 的布局尚未发生

所以我尝试添加一个 ViewTreeObserver.OnPreDrawListener,并将 moveCamera() 调用移动到 onPreDraw 方法,作为该方法的文档说“此时,树中的所有 View 都已测量并给出了一个框架”。但我仍然看到一些具有相同问题的崩溃报告。我找不到这方面的任何文档 — 有类似 moveCamera with CameraUpdateFactory.newLatLngBounds crashes 的问题但它们早于 getMapAsync API,因此帮助不大。

最佳答案

我遇到了同样的问题。当应用程序尝试通过此相机更新更改相机时,此谷歌地图库会抛出异常,直到 map 经过布局(为了使此方法正确确定适当的边界框和缩放级别, map 必须具有大小)。它描述了here .

这是我的解决方案:

@Override
public void onMapReady(GoogleMap googleMap) {
googleMap.setOnMapLoadedCallback(this);
}

@Override
public void onMapLoaded() {
googleMap.animateCamera(CameraUpdateFactory.newLatLngBounds(…));
}

关于android - 什么时候可以在 OnMapReadyCallback 的 onMapReady 之后调用 GoogleMap.moveCamera?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30935649/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com