Come disabilitare l'evento di clic del marker?

Sto sviluppando un'applicazione semplice, where ho già visualizzato il titolo di marcatura con mrkr.showInfoWindow() ma non voglio che l'utente mrkr.showInfoWindow() nuovamente quel marker. Come distriggersre l'evento di clic di un determinato marcatore?

Ecco come ho provato.

  • Devo utilizzare sempre l'ultimo targetSdkVersion?
  • Ottieni i gruppi di un contatto?
  • Caricamento di immagini in gridview con task async, caricamento non corretto
  • isValidFragment Android API 19
  • Esegui un'altra AsyncTask in onPostExecute ()
  • Come scegliere una risoluzione dell'image da mostrare a schermo integer?
  •   Marker marker = gMap.addMarker(new MarkerOptions().position(new LatLng(location .getLatitude(), location.getLongitude())).title("I am here").icon(BitmapDescriptorFactory.fromResource(R.drawable.mrk1))); marker.showInfoWindow(); //how to use marker.setClickable here or somthing here.? 

    Come visualizzare che infowindow () / titolo del mio marcatore per tutta la mia applicazione?

  • Posso avere una singola chiave API Google Maps per tutte le mie applicazioni senza registrare i nomi dei pacchetti?
  • leggere un file di text e cercare una string in android
  • Impostare la width di SeekBar per effettuare "scorrimento per sbloccare" l'effetto
  • Android: L'exception di Leaked IntentReceiver viene gettata anche se chiamo unregisterReceiver
  • Utilizzo di ResultReceiver in Android
  • Come aggiornare l'elenco di visualizzazione i cui dati sono stati interrogati dal database tramite SimpleCursorAdapter?
  • 3 Solutions collect form web for “Come disabilitare l'evento di clic del marker?”

    È ansible impostare onMarkerClickListener nell'object GoogleMap

     map.setOnMarkerClickListener(new OnMarkerClickListener() { @Override public boolean onMarkerClick(Marker marker) { return true; } }); 

    È chiaro da questo punto 3 anni dopo, che non esiste alcun modo per far passare i clic del marcatore per essere gestito dalla stessa mappa (OnMapClickListener). I markers intercettano sempre questo evento, anche se è ansible distriggersre il comportmento predefinito dal clic (come mostra la risposta). Nel caso in cui possa aiutare qualcuno che necessita ancora di una soluzione migliore, segue.

    Per aggirare questa limitazione, esistono due opzioni. Ho implementato entrambi, e sono in grado di ripulire e condividere il codice su richiesta.

    1.) Crea una bitmap GroundOverlay che abbia i waypoint che non si desidera gestire dipinto su di esso. Utilizza l'object di Proiezione di GoogleMap per convertire da schermo Punti a LatLng e calcolare where posizionare la bitmap per avere i waypoint visualizzati nel posto giusto. È abbastanza complicato per gestire la rotazione, l'imbottitura di mappe e qualche altra questione. Quando si ingrandisce, i marker di waypoint crescono in size, e poi nell'evento onCameraIdle, si crea nuovamente la bitmap e riposiziona il GroundOverlay se necessario. Questo è il metodo che sto usando nella produzione. La panoramica, la rotazione e lo zoom sono tutti super lisci, e come sovrapposizioni di terra possono essere impostate per gestire o non gestire i rubinetti, risolve il problema. Non sono riuscito a capire come fare questo lavoro con inclinazione. I waypoint stessi non restano rivolti a Nord durante la rotazione, ma possono essere ruotati in posizione verticale quando viene ripristinato il GroundOverlay. C'è una breve pausa / non reattività della mappa dopo che onCameraIdle provoca la ricostruzione dell'overlay di terra.

    2.) Creare un object Visualizza che copre l'integer schermo e vernici i marcatori del waypoint nel metodo onDraw della vista. Ancora una volta, utilizza l'object di proiezione di GoogleMap per calcolare where dipingere i marcatori. Chiamata invalidate () nella vista quando si trova nell'evento onCameraMove, in modo che i marcatori siano ricalcolati alle nuove posizioni dello schermo. Il vantaggio principale di questo è la semplicità. La rotazione, l'inclinazione, gli sfalsamenti di riempimento della mappa vengono trattati per voi. Lo svantaggio principale è che se annullate in each evento onCameraMove, è un po 'troppo cpu intensivo (presumo) e la panoramica della mappa / zoom può diventare sconcertante. Se si annullano each 3 o 5 events di spostamento, i waypoint sembrano rimbalzare mentre si pan / zoom in quanto non vengono riverniciati nella loro nuova posizione abbastanza frequentemente. Tuttavia, non c'è alcun ritardo alla fine della mossa della mappa. In ultima analisi, con 100-200 punti di accesso sulla mappa, i problemi di performance "durante la panoramica" erano troppo evidenti per me.

    Spero che questo aiuti qualcuno. Fammi sapere se hai bisogno di un codice aiuto.

    È ansible utilizzare onMarkerClickListener per questo come sotto,

     mMap.setOnMarkerClickListener( new OnMarkerClickListener() { @Override public boolean onMarkerClick ( Marker marker ) { // do nothing return false; } }); 
    L'Android è un fan Android di Google, tutto su telefoni Android, Android Wear, Android Dev e applicazioni Android Games e così via.