Всегда показывать заголовок маркера карты в Android

Я добавляю маркер по умолчанию в GoogleMap следующим образом:

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);

Как я могу сделать маркер всегда показывать название и фрагмент без прикосновения? Я также хотел бы отключить скрытие их при прикосновении.

Ответ 1

Это очень просто:

locationMarker.showInfoWindow();

Ответ 2

Просто верните false для onMarkerClickListener, если вы вернете true, отобразите infoWindow.

Чтобы скрыть заголовок, когда мы нажимаем на маркер:

map.setOnMarkerClickListener(this);
...

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

Если мы вернем истинный заголовок, будет отображаться, иначе, если мы вернем ложное название, оно не будет отображаться.

Ответ 3

Существует два метода отображения и скрытия маркеров. Возвращаемое значение boolean просто предотвращает выполнение по умолчанию (false) или позволяет ему произойти (true). Другими словами, он информирует систему о том, потреблял ли вы это событие или нет. См. Справочник по API Google.

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);

Ответ 4

используйте showInfoWindow() и добавьте маркер, как показано ниже.

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