InfoWindow隐藏在GoogleMap Google Maps Android API v2之后,android onMarkerClick不会调用

我将谷歌地图
Android API v2集成到我的应用程序中,并且在GoogleMap中对标记有奇怪的行为.

InfoWindow隐藏后不调用OnMarkerClickListener#onMarkerClick(标记标记).它不依赖于我如何显示InfoWindow(既不是marker.showInfoWindow()也不是

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

隐藏InfoWindow后,你能帮我处理标记上的点击事件吗?

最佳答案 这就是应该发生的事情! onMarkerClick仅在单击标记时被调用,但在infoWindow隐藏时不会被调用.

如果你想监听InfoWindows隐藏事件,你必须在hideMoveer中的onMarkerClick方法中实现你自己的逻辑,或者覆盖onMapClick方法(因为可以隐藏信息点击地图上的任何地方).在最后一种情况下,您必须使用激活的infoWindow保留对最后一个标记的引用,并检查该窗口状态以实现您的逻辑.

点赞