Pie*_*ira 3 android google-maps kotlin android-jetpack-compose
我正在使用新的谷歌地图集成库与 jetpack compose,但是我想修改我的标记的行为:当地图初始化时,我想显示我的标记的信息,而不必单击它。目前地图是这样开始的:
当我单击突出显示的标记时,它看起来像这样:
我期望的结果是该书签与此信息一起出现,而我不必单击它。
我用来渲染带有标记的地图的代码是这样的:
GoogleMap(
modifier = Modifier
.fillMaxHeight(0.9f)
.fillMaxWidth(),
cameraPositionState = cameraPositionState
) {
coordinates.forEach { (hotelName, coordinate) ->
var alpha = 0.5f
if (highlightedMarkerPosition == LatLng(coordinate[0], coordinate[1]))
alpha = 1f
Marker(
position = LatLng(coordinate[0], coordinate[1]),
title = hotelName,
snippet = uiState.bestHotelAndValue?.second.toString(),
alpha = alpha
)
}
}
Run Code Online (Sandbox Code Playgroud)
将其保存MarkerState到变量中,然后调用showInfoWindow
像这样
GoogleMap(
modifier = Modifier
.fillMaxHeight(0.9f)
.fillMaxWidth(),
cameraPositionState = cameraPositionState
) {
coordinates.forEach { (hotelName, coordinate) ->
var alpha = 0.5f
if (highlightedMarkerPosition == LatLng(coordinate[0], coordinate[1]))
alpha = 1f
HotelMarker(
LatLng(coordinate[0], coordinate[1]),
hotelName,
uiState.bestHotelAndValue?.second.toString(),
alpha
)
}
}
@Composable
fun HotelMarker(position: LatLng, title: String, snippet: String?, alpha: Float){
val markerState = rememberMarkerState(null, position)
Marker(
state = markerState,
title = title,
snippet = snippet,
alpha = alpha
)
markerState.showInfoWindow()
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1246 次 |
| 最近记录: |