googlemaps / googlemaps/android-maps-compose
Cluster Item Update removes marker (Disappears)
Nessuno ha ancora preso questa issue.
- Lingua principale
- Kotlin
- Stelle
- 1.3k
- Fork
- 181
- Merge medio
- 2g 23h
- PR unite (30g)
- 18
Descrizione
Hey,
I'm using Google Maps Compose along with Custom Cluster to render items on map, also I've the below property set to false
`override fun shouldRenderAsCluster(cluster: Cluster) = false`
On updating item from clustered/rendered items on the map, the desired updated marker disappears sometimes.
#### Environment details
1. `'com.google.maps.android:maps-compose:4.4.2'` and `'com.google.maps.android:maps-compose-utils:4.4.2'`
2. Android 12 (API 31) Physical Device for testing and Windows 10 Desktop
#### Steps to reproduce
1. Add some markers as cluster items in the map
2. Update marker(s) in the map (frequently)
3. The marker disappears unexpectedly
#### Code example
```kotlin
// COMPOSE VIEW
val itemToUpdate = clusterManager?.algorithm?.items?.find { it.getStation().id == 129 }
itemToUpdate?.station?.let { item ->
item.status = if (showFilterBottomSheet.value) "AVAILABLE" else "PLANNED"
}
itemToUpdate?.let {
val isUpdatedSuccess = clusterManager?.updateItem(it)
}
clusterManager?.cluster()
```
```kotlin
// CustomClusterRender
override fun onClusterItemUpdated(item: T, marker: Marker) {
super.onClusterItemUpdated(item, marker)
Timber.d("onClusterItemUpdated: ${item.title}")
marker.setIcon(
// Some internal logic to set marker color, also used in "onBeforeClusterItemRendered"
// FYI: setIcon internal logic doesn't have any issue.
)
}
```
Video Example:
NOTE: The marker disappears at `00:11` and I'm using the Filter Icon on the top right to trigger the update manually.
https://github.com/googlemaps/android-maps-compose/assets/62587060/76b5e753-d96a-4f37-ba71-8c5aa1deead0
Thanks!
Guida per i contributori
Apri la guida per i contributori
Come iniziare
- Leggi tutta la issue e poi la guida ai contributi del progetto.
- Commenta sulla issue per dire che te ne occupi tu — evita che due persone facciano lo stesso lavoro.
- Fai un fork del repository e lavora su un branch.
- Apri una pull request che faccia riferimento al numero della issue.
Direzione di ricerca
Inizia dal flusso del cluster personalizzato relativo a shouldRenderAsCluster, updateItem, cluster() e CustomClusterRender.onClusterItemUpdated. Riproduci l’aggiornamento frequente del marker seguendo i passaggi e il video forniti, quindi verifica se l’elemento del cluster aggiornato viene rimosso o non viene renderizzato. Il lavoro è completato quando gli aggiornamenti ripetuti non fanno più scomparire il marker.
Scritto dal modello di indicizzazione a partire dal testo della issue.
Valutazione
- Stack tecnologico
- kotlin
- Ambito
- mobile-dev
- Tipo di issue
- Bug
- Difficoltà
- 3/5
- Tempo stimato
- 1-2 giorni
- Stato di attività
- Ferma
- Chiarezza
- Abbastanza chiara
- Idoneità per principianti
- 48/100