0

当我moveCamera在小屏幕上调用时,它会引发以下异常:

java.lang.IllegalStateException:非法高度。

这是我的代码:

googleMap.moveCamera(
    CameraUpdateFactory.newLatLngBounds(
        bounds,
        // Padding
        100,
    ),
)

我尝试删除填充,但没有任何区别。

我想这个问题与可用于渲染地图的高度有限有关,因为这只发生在小屏幕上,但仍有相当多的空间可供地图渲染,所以我不希望发生崩溃。

如何渲染地图并将相机移动到给定的边界?


依赖版本:

  • com.google.android.libraries.maps:maps:3.1.0-beta
  • com.google.maps.android:maps-v3-ktx:2.2.0
  • androidx.compose.ui:ui:1.0.0-rc02
4

1 回答 1

0

即使崩溃发生在moveCamera,问题似乎是由setPadding上面的调用引起的:

googleMap.setPadding(
    0,
    topPadding,
    0,
    0,
)

修复是确保填充不会超过地图大小的一半:

googleMap.setPadding(
    0,
    min(topPadding, map.height / 2 - 2),
    0,
    0,
)
于 2021-08-09T08:13:46.403 回答