Android 单击外部时关闭MapQuest注释视图
在Android中,我有一个MapQuestAndroid 单击外部时关闭MapQuest注释视图,android,mapquest,Android,Mapquest,在Android中,我有一个MapQuestMapView。MapView有一个DefaultItemizedOverlay,带有一个OverlayItem,单击该项目时,将显示一个注释视图。这基本上就是MapQuest在其指南的覆盖部分中演示的内容 这很好,但有几个人注意到,没有办法关闭注释。用户可以单击另一个OverlayItem来显示其注释,但是如果不打开另一个,就无法隐藏一个注释。我可以在注释中添加一个按钮来关闭它,但我更希望在用户点击注释外部时将其关闭。有没有方便的方法 覆盖已经有一个
MapView
。MapView
有一个DefaultItemizedOverlay
,带有一个OverlayItem
,单击该项目时,将显示一个注释视图。这基本上就是MapQuest在其指南的覆盖部分中演示的内容
这很好,但有几个人注意到,没有办法关闭注释。用户可以单击另一个OverlayItem
来显示其注释,但是如果不打开另一个,就无法隐藏一个注释。我可以在注释中添加一个按钮来关闭它,但我更希望在用户点击注释外部时将其关闭。有没有方便的方法
覆盖已经有一个显示注释的OverlayTapListener
。我曾试图修改它的逻辑,但我发现它只在点击覆盖项时被调用,而不是在用户点击其他位置时被调用。除了覆盖overlay的onTouchEvent()
方法并通过小改动复制其逻辑之外,有人对如何实现这一点有什么想法吗?我为同样的问题做了很多努力,最后找到了解决办法
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的人