2012-12-27 89 views
4

我將Google Maps Android API v2集成到我的應用中,並且在GoogleMap中使用標記有奇怪的行爲。在InfoWindow隱藏後,OnMarkerClickListener#onMarkerClick(標記標記)不會被調用。它不依賴於我如何表現信息窗口(既不marker.showInfoWindow()也不安卓onMarkerClick不會在GoogleMap中隱藏InfoWindow後調用Google Maps Android API v2

@Override 
public boolean onMarkerClick(final Marker marker) { 
..... 
return true;} 

不起作用。 後,我通過觸摸或更改放大它改變相機位置的工作一次。 的同樣的行爲在我看到GoogleMapDemo。

這裏是我的代碼

private GoogleMap mMap; 

@Override 
protected void onCreate(Bundle icicle) { 
    super.onCreate(icicle); 

    setContentView(R.layout.map_address_activity); 
    setUpMapIfNeeded(); // from oficial sample 

    mMap.setOnMapClickListener(new OnMapClickListener() { 

     @Override 
     public void onMapClick(LatLng point) { 
      mMap.clear(); 
      mMap.addMarker(new MarkerOptions().position(point).title("Marker")); 
      final CameraPosition cameraPosition = new CameraPosition.Builder().target(point).zoom(mMap.getCameraPosition().zoom).build(); 

      mMap.animateCamera(CameraUpdateFactory.newCameraPosition(cameraPosition)); 
     }); 
    mMap.setOnMarkerClickListener(new OnMarkerClickListener() { 

     @Override 
     public boolean onMarkerClick(final Marker marker) { 
     Log.e("TESTING", "on Marker click: " + marker.getTitle()); 
      if (!marker.isInfoWindowShown()) 
       marker.showInfoWindow(); 
      else 
       marker.hideInfoWindow(); 

      return true; 
     } 
    }); 
} 

你能幫我處理點擊隱藏信息窗口後標記事件?

回答

2

這就是應該發生的事情! onMarkerClick僅在點擊標記時被調用,而不在infoWindow隱藏時被調用。

如果您想要偵聽InfoWindows隱藏事件,您必須在您隱藏窗口的onMarkerClick方法或在onMapClick方法中覆蓋的地方實現自己的邏輯(因爲可以隱藏單擊地圖上任何地方的信息)。在最後一種情況下,您必須在激活的infoWindow上保留最後一個標記的引用,並檢查該窗口狀態以實現您的邏輯。

相關問題