我使用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,因此不再显示右下角的工具栏...如何在地图加载中显示它?
答案 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