2013-02-28 113 views
32

显示地图标记标题我添加默认标记的GoogleMap方式如下:始终在Android的

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

我怎样才能使标志始终显示标题和摘要没有联系?我也想禁用他们隐藏他们。

回答

77

这是很容易:

locationMarker.showInfoWindow(); 
3

只返回false为onMarkerClickListener,如果你返回true显示infoWindow

要隐藏标题,当我们点击标记:

map.setOnMarkerClickListener(this); 
... 

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

如果我们返回true标题会显示,否则,如果我们返回false标题不会显示。

+0

这可能对谷歌地图V2?我回到假,但标记仍然显示标题... – Ricky 2014-03-31 09:33:35

+0

是的。它适用于V2。我只尝试了v2。另一种选择是,那是把标题作为空字符串。即“”。但不好 – sandeepmaaram 2014-04-03 06:23:56

3

有两种显示和隐藏标记的方法。布尔返回值只是防止发生默认行为(false)或允许它发生(true)。换句话说,它通知系统你是否使用了该事件。请参阅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

使用showInfoWindow()并添加标记如下。

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