Google地图Android API v2中,当InfoWindow隐藏后,onMarkerClick不会被调用。

4
我将Google Maps Android API v2集成到我的应用程序中,但在GoogleMap中使用标记时出现了奇怪的行为。当InfoWindow隐藏后,OnMarkerClickListener#onMarkerClick(Marker marker)不会被调用。这与我如何显示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;
        }
    });
}

在隐藏信息窗口后,您能帮忙处理标记的点击事件吗?

1个回答

2

这是预期发生的事情!只有在单击标记时,才会调用onMarkerClick方法,而不是在信息窗口隐藏时。

如果您想监听InfoWindows隐藏事件,您必须要么在onMarkerClick方法中实现自己的逻辑,其中您隐藏InfoWindow,要么在重写的onMapClick方法中(因为可通过单击地图上的任何位置来隐藏信息)。在最后一种情况下,您必须保留已激活的infoWindow的最后一个标记的引用,并检查该窗口状态以实现您的逻辑。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接