当前位置: 首页 > 知识库问答 >
问题:

什么时候可以从OnMapReadyCallback调用onMapReady之后的GoogleMap.MoveCamera?

商燕七
2023-03-14

当前的Android Google Maps API要求在访问GoogleMap之前,使用onMapReadyCallback调用MapFragment.getMapAsync。我假设一旦您有了GoogleMap,调用Movecamera()就安全了,但是我看到了带有IllegalStateException的崩溃报告,其中说Map size不能为0。最有可能的情况是,map视图还没有出现布局。

因此,我尝试添加viewTreeObserver.onpredrawListener,并将movecamera()调用移动到onpredraw方法,因为该方法的文档表示“此时,树中的所有视图都已度量并给出了一个框架”。但我还是看到一些有同样问题的崩溃报告。我找不到这方面的任何文档--有一些问题,比如MoveCameraUpdateFactory.NewLatlnGBounds崩溃,但它们早于GetMapAsyncAPI,所以没有太大帮助。

共有1个答案

吕和风
2023-03-14

我也有同样的问题。当一个应用程序试图用这个相机更新来改变相机时,这个google maps库会抛出异常,直到地图完成布局(为了让这个方法正确地确定合适的边框和缩放级别,地图必须有一个大小)。这里描述过。

这是我的解决方案:

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

@Override
public void onMapLoaded() {
    googleMap.animateCamera(CameraUpdateFactory.newLatLngBounds(…));
}
 类似资料:
  • 我试图创建一个使用谷歌地图的项目的定位器功能的华为变体。但我的问题是onMapReady()回调在getMapAsync()之后根本不触发 但是当使用huawei map依赖项时,getMapAsync()之后根本不会触发onMapReady回调

  • 问题内容: 在最近的项目中,我建议在测试工具代码中捕获RuntimeException并将其记录下来。该代码处理来自数据库的一系列输入,并且我不希望由于任何一个输入(空值,非法参数等)失败而导致测试停止。不用说,我的建议引起了热烈的讨论。 捕获任何一种RuntimeException是否可以接受?如果是,那么可以捕获RuntimeExceptions的其他方案还有哪些? 问题答案: 捕获此异常的原

  • 问题内容: 有效的Java建议我们不要这样做 。总是对的吗? 在许多情况下,仅捕获身体。 如果我不接听电话,如何检查发生的地点? 而且,如果我抓住了但身体空了,那我们那时就无法获得任何堆栈信息,可以吗? 更新 我分析了在Google Android源AOSP4.2.2_r1.2中捕获RuntimeException的统计信息。 有249个RuntimeException捕获,并且以下是catch-

  • 问题内容: 我从jls找到了报价: 相等运算符可用于比较两个可转换(第5.1.8节)为数字类型的操作数,或两个boolean或Boolean类型的操作数,或 两个分别为引用类型或null类型的操作数 。所有其他情况都会导致编译时错误。 但是这段代码 每个操作数都是参考! 说这是不兼容的类型。 jls在哪里说这些类型应该兼容? 问题答案: 在15.21.3节(参考相等运算符==和!=)中: 如果无法

  • 问题内容: 我正在开发JSON / REST Web API,为此,我特别希望第三方网站能够通过AJAX调用我的服务。因此,我的服务正在发送著名的CORS标头: 允许第三方站点通过AJAX调用我的服务。到目前为止一切都很好。 但是,我的Web api的一个子部分是非公开的,需要身份验证(带有OAuth和access_token cookie的相当标准的东西)。在我网站的此部分也启用CORS是否安全

  • 我找到了JLS引文: 表示它是不兼容的类型。 在jls中哪些地方说这些类型应该兼容?