android - Mapbox 地图是黑色的使用 jetpack compose
问题描述
我正在尝试将 Mapbox 与 compose 一起使用,但地图显示不正确。我尝试:
@Composable
fun MapView(
modifier: Modifier = Modifier
) {
AndroidView(
modifier = Modifier.fillMaxSize(),
factory = { context ->
var map = MapView(context).apply {
layoutParams = ViewGroup.LayoutParams(
ViewGroup.LayoutParams.MATCH_PARENT,
ViewGroup.LayoutParams.MATCH_PARENT
)
getMapboxMap().apply {
cameraOptions {
zoom(19.0)
}
}
}
map
}
)
}
但显示为空:
解决方案
您首先必须获得地图框的实例
Mapbox.getInstance(context, public_api_key)
然后在地图视图中,您必须异步获取地图。
MapView(context).apply {
getMapAsync { mapboxMap ->
mapboxMap.setStyle(Style.MAPBOX_STREETS)
val position = CameraPosition.Builder()
.zoom(19.0)
.build()
mapboxMap.animateCamera(CameraUpdateFactory.newCameraPosition(position), 1)
}
}
对于完整的片段
AndroidView(
modifier = modifier,
factory = { context ->
Mapbox.getInstance(
context,
public_api_key
)
MapView(context).apply {
getMapAsync { mapboxMap ->
mapboxMap.setStyle(Style.MAPBOX_STREETS)
val position = CameraPosition.Builder()
.zoom(19.0)
.build()
mapboxMap.animateCamera(CameraUpdateFactory.newCameraPosition(position), 1)
}
}
}
)
推荐阅读
- android - 有没有办法使用相同的布局动态创建片段并向它们显示数据?
- c - 由于未使用的 int 导致的分段错误
- bash - 如何在 Window 上的 Visual Studio 代码中集成 git bash
- kubernetes - BLOB 静态 Web 和 AKS Web API 之间的 http(s) 协议不匹配
- swift - 当它是可选的时,Swift 不会识别我的类型符合协议
- android-studio - 在 Android Studio 4.2 中添加 AAR 依赖项
- python - Django - 我可以添加仅针对特定子集或模型出现的计算字段吗?
- amazon-web-services - 将 terraform 资源导入本地块
- linux - 如何将最后添加的文件夹添加到目录
- jsf-2 - JPA 错误未标记级联 PERSIST 的关系