Page 1 of 1

Markerinfowindow nicht neu komponieren

Posted: 10 Feb 2025, 01:21
by Guest
Ich versuche, den Infowindowmarker Inhalt meiner Google Map in komponieren zu aktualisieren, dafür habe ich dem Infowindowmarker einen Onclick hinzugefügt und wenn er geklickt wird, Es ändert eine "bevorzugte" Variable, die auf der Karte gehockt ist. Diese Lieblingsvariable wird an den Marker übergeben, und abhängig von dieser Variablen zeigt oder nicht ein anderer Text. Debug -Modus mit einem Haltepunkt), aber das Info -Fenster wird nicht geändert! Der Lieblingstext erscheint nicht, es ist, als würde er nicht neu komponiert.

Code: Select all

GoogleMap(
modifier = Modifier.fillMaxSize(),
cameraPositionState = cameraPositionState
) {
val bitmapDescriptor: BitmapDescriptor by remember { mutableStateOf(BitmapDescriptorFactory.fromResource(R.drawable.place)) }

for (busStop in uiState.data) {
var favorite by remember { mutableStateOf(false) }

val markerState = rememberMarkerState(position = LatLng(busStop.lat, busStop.lon))
CustomMarker(
favorite = favorite,
busStop = busStop,
markerState = markerState,
bitmapDescriptor = bitmapDescriptor,
showMarker = showMarkers,
onMarkerClicked = { favorite = !favorite }
)
}
}
< /code>
Dies ist mein benutzerdefinierter markierer: < /p>
@Composable
fun CustomMarker(
favorite: Boolean,
busStop: BusStop,
markerState: MarkerState,
bitmapDescriptor: BitmapDescriptor,
showMarker: Boolean,
onMarkerClicked: () -> Unit,
modifier: Modifier = Modifier
) {
MarkerInfoWindowContent(
state = markerState,
icon = bitmapDescriptor,
visible = (showMarker),
onInfoWindowClick = {
onMarkerClicked()
}
) {
Column(
modifier = modifier.wrapContentSize().padding(8.dp),
horizontalAlignment = Alignment.CenterHorizontally
) {
Text(text = busStop.id.toString(), color = Color.Red)
Text(text = busStop.name, color = Color.Red)

if (favorite)
Text("favorite"}
}
}
}