Wie kann ein Zirkularprogressindikator komponierbar angezeigt werden, bis jeder Advancedmarker zu Maps hinzugefügt wurde? Es gibt viele Marker, und ein gefrorener Bildschirm wird festgestellt, bis alle Marker hinzugefügt werden. Die "Laden" -Variable des Uistats, weil dieses Zeug ausschließlich von der Benutzeroberfläche stammt, ist es UI -Logik. Ich habe versucht, die Variable in der Uistate meiner ViewModel beim Laden der Markierungen aufzutragen, und habe es beim Übermal auf false gesetzt, und ich habe versucht, VM.Setloading ( true) und vm.setloading (false) vor und danach für. Aber es hat nicht funktioniert und der Fortschritt wird nicht angezeigt. < /p>
Code: Select all
Box(
modifier = modifier.fillMaxSize()
) {
GoogleMap(
modifier = Modifier.fillMaxSize(),
cameraPositionState = cameraPositionState
) {
vm.setLoading(true)
for (itemin uiState.data) {
AdvancedMarker(
state = rememberMarkerState(position = LatLng(item.lat, item.lon)),
title = item.name
)
}
vm.setLoading(false)
}
if (uiState.loading) {
Box(Modifier.fillMaxSize().background(Color.White.copy(alpha = 0.5f)))
CircularProgressIndicator(modifier = Modifier.fillMaxSize().wrapContentSize(Alignment.Center))
}
}