2013-02-28 14 views
32

Dodaję domyślny znacznik GoogleMap następujący sposób:Zawsze pokaż mapę tytuł znacznika w Androidzie

GoogleMap map = ((MapFragment) getFragmentManager().findFragmentById(R.id.editMapMap)).getMap(); 

MarkerOptions markerOptions = new MarkerOptions(); 
markerOptions.position(currentLocation.getCoordinate()); 
markerOptions.title(Utils.getLocationString(currentLocation.getCoordinate())); 
markerOptions.snippet("Blah"); 

locationMarker = map.addMarker(markerOptions); 
locationMarker.setDraggable(true); 

Jak mogę zrobić marker zawsze pokazać tytuł i fragment kodu bez dotyku? Chciałbym też wyłączyć ukrywanie ich na dotyk.

Odpowiedz

3

Wystarczy return false dla onMarkerClickListener, jeśli zwróci true pokazuje infoWindow.

Aby ukryć tytuł, kiedy klikamy na marker:

map.setOnMarkerClickListener(this); 
... 

@Override 
public boolean onMarkerClick(Marker arg0) {  
    Log.i(TAG,"marker arg0 = "+arg0);    
    return false; 
} 

Jeśli wrócimy prawdziwy tytuł będzie wyświetlacz, else, jeśli wrócimy fałszywy tytuł nie będą wyświetlane.

+0

jest to możliwe w przypadku google maps v2? wracam false, ale znacznik nadal wyświetla tytuł ... – Ricky

+0

tak. Działa na V2. Próbowałem tylko dla v2. Jest tam inna alternatywa, czyli tytuł jako pusty ciąg. tj. "". Ale nie jest dobrze – sandeepmaaram

3

Istnieją dwie metody pokazywania i ukrywania znaczników. Boolowska wartość zwracana po prostu uniemożliwia zachowanie domyślne (fałsz) lub pozwala na to (prawda). Innymi słowy, informuje system, czy spożyłeś to wydarzenie, czy nie. Zobacz Google API Reference.

private GoogleMap.OnMarkerClickListener onMarkerClickedListener = new GoogleMap.OnMarkerClickListener() { 
    @Override 
    public boolean onMarkerClick(Marker marker) { 
     if (marker.isInfoWindowShown()) { 
      marker.hideInfoWindow(); 
     } else { 
      marker.showInfoWindow(); 
     } 
     return true; 
    } 
}; 

mGoogleMap.setOnMarkerClickListener(onMarkerClickedListener); 
2

użyj showInfoWindow() i dodaj znacznik jak poniżej.

Marker marker = mMap.addMarker(new MarkerOptions().position(currentPosition).title("Your text")); 
marker.showInfoWindow(); 
Powiązane problemy