不要在其他地方点击删除infoWindow

时间:2016-07-01 15:51:46

标签: android google-maps

我使用mapFragment显示地图。

由于我想禁用标记的居中,所以当点击标记时,我实现了以下点击监听器:

@Override
public void onMapReady(GoogleMap map) {
    map.getUiSettings().setScrollGesturesEnabled(false);
    map.getUiSettings().setMapToolbarEnabled(true);
    map.setOnMarkerClickListener(new GoogleMap.OnMarkerClickListener() {
        public boolean onMarkerClick(Marker marker) {
            marker.showInfoWindow();
            return true;
        }
    });
    if (!event.getLatlgn().equals("")) {
        LatLng eventLocation = event.getLatlgn());
        Marker location = map.addMarker(new MarkerOptions().position(eventLocation).title(event.getLocation()));
        location.showInfoWindow();
        LatLng camera = Events.modify4Camera(event.getLatlgn());
        map.moveCamera(CameraUpdateFactory.newLatLngZoom(camera, 15));
    }
}

但是当用户点击地图中的任何其他位置时,信息窗口会消失。我怎么解决这个问题?我希望信息窗口始终打开。

此外,由于我实现了自己的onMarkerClickListener,因此不再显示右下角的工具栏...如何在地图加载中显示它?

1 个答案:

答案 0 :(得分:-1)

如果要在地图中的任何位置单击时显示infoWindow,可以通过调用showInfoWindow()以编程方式显示信息窗口。信息窗口旨在响应用户触摸事件。此外,可以通过调用hideInfoWindow()来隐藏信息窗口。

以下是如何使用showInfoWindow()方法的示例:

static final LatLng MELBOURNE = new LatLng(-37.81319, 144.96298);
Marker melbourne = mMap.addMarker(new MarkerOptions()
.position(MELBOURNE)
.title("Melbourne"));
melbourne.showInfoWindow();

有关详细信息,您可以尝试使用此演示应用。此演示应用包含showInfoWindow()方法:https://github.com/googlemaps/android-samples/blob/master/ApiDemos/app/src/main/java/com/example/mapdemo/MarkerDemoActivity.java