在Android中,我有一个MapQuest MapView
。 MapView
有DefaultItemizedOverlay
OverlayItem
,点击后会显示AnnotationView
。这基本上是MapQuest在其Getting Started指南的叠加部分中演示的内容。
这很好用但是有些人注意到的是没有办法关闭注释。用户可以点击另一个OverlayItem
来显示其注释,但是如果不打开另一个,则无法隐藏其中一个。我可以在注释中添加一个按钮来关闭它,但是当用户点击注释之外时我更愿意将它关闭。有没有方便的方法呢?
叠加层已有OverlayTapListener
,可显示注释。我正在考虑修改它的逻辑,但我发现只有在点击覆盖项时才调用它,而不是当用户点击其他地方时。如果没有覆盖叠加层的onTouchEvent()
方法并通过小的更改复制其逻辑,那么有没有人对如何实现这一点有任何想法?
答案 0 :(得分:0)
我在同样的问题上苦苦挣扎,最后我找到了解决方法!
myMapView.addMapViewEventListener(new MapView.MapViewEventListener() {
@Override
public void moveStart(MapView mapView) { }
@Override
public void move(MapView mapView) { }
@Override
public void moveEnd(MapView mapView) { }
@Override
public void touch(MapView mapView) {
annotation.hide();
}
@Override
public void longTouch(MapView mapView) { }
@Override
public void zoomStart(MapView mapView) { }
@Override
public void zoomEnd(MapView mapView) { }
@Override
public void mapLoaded(MapView mapView) { }
});
如果点击地图上的标记,它基本上会关闭注释。
希望能帮助其他人努力使用免费的MapQuest API。