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.

  • Android 2.1 Come get numbers di telefono di contatti
  • Come codificare la condivisione tra Android e iOS
  • Data e ora di visualizzazione nella zona dell'utente
  • Come posso impostare IntelliJ IDEA per applicazioni Android?
  • Come posso fare Android Volley eseguire la richiesta HTTPS utilizzando un certificato auto-firmato da una CA non riconosciuta?
  • Perché ImageView.setImageMatrix () non funziona?
  •   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?

  • Come usare il gesto di scorrimento in una pagina pager di vista con android?
  • Gradle versione 1.8 è richiesta. La versione corrente è 1.6
  • Ottieni la posizione del touch all'interno dell'image in android
  • Problemi con la libreria di supporto Renderscript
  • Distanza tra due posizioni nella mappa Android
  • Ottenere tutti i MotionEvents con WindowManager.LayoutParams.FLAG_WATCH_OUTSIDE_TOUCH
  • 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.