单击外部时关闭MapQuest AnnotationView

时间:2013-08-12 17:29:59

标签: android mapquest

在Android中,我有一个MapQuest MapViewMapViewDefaultItemizedOverlay OverlayItem,点击后会显示AnnotationView。这基本上是MapQuest在其Getting Started指南的叠加部分中演示的内容。

这很好用但是有些人注意到的是没有办法关闭注释。用户可以点击另一个OverlayItem来显示其注释,但是如果不打开另一个,则无法隐藏其中一个。我可以在注释中添加一个按钮来关闭它,但是当用户点击注释之外时我更愿意将它关闭。有没有方便的方法呢?

叠加层已有OverlayTapListener,可显示注释。我正在考虑修改它的逻辑,但我发现只有在点击覆盖项时才调用它,而不是当用户点击其他地方时。如果没有覆盖叠加层的onTouchEvent()方法并通过小的更改复制其逻辑,那么有没有人对如何实现这一点有任何想法?

1 个答案:

答案 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。