我刚刚从带有AndroidView的谷歌地图切换到这个compose库(https://github.com/googlemaps/android-maps-compose),并且我无法使滚动正常工作。我以前用过这个:
map.setOnCameraMoveStartedListener {
mapView?.parent?.requestDisallowInterceptTouchEvent(true)
}
map.setOnCameraIdleListener {
mapView?.parent?.requestDisallowInterceptTouchEvent(false)
}
在新的图书馆里有什么类似的解决方案?
GoogleMap(
properties = mapProperties,
cameraPositionState = cameraPositionState,
modifier = Modifier.clip(MaterialTheme.shapes.medium),
uiSettings = MapUiSettings(mapToolbarEnabled = false)
)
我用cameraPositionState:成功地解决了这个问题
Column(
.verticalScroll(rememberScrollState(), enabled = !cameraPositionState.isMoving)
)
从Maps Compose的1.2.0版本开始,由于Maps Composer完全管理底层映射,因此无法对这些事件调用requestDisallowInterceptTouchEvent
。Maps Compose GitHub库存在问题(https://github.com/googlemaps/android-maps-compose/issues/14)为了这个你可以跟随。