Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/eclipse/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 单击外部时关闭MapQuest注释视图_Android_Mapquest - Fatal编程技术网

Android 单击外部时关闭MapQuest注释视图

Android 单击外部时关闭MapQuest注释视图,android,mapquest,Android,Mapquest,在Android中,我有一个MapQuestMapView。MapView有一个DefaultItemizedOverlay,带有一个OverlayItem,单击该项目时,将显示一个注释视图。这基本上就是MapQuest在其指南的覆盖部分中演示的内容 这很好,但有几个人注意到,没有办法关闭注释。用户可以单击另一个OverlayItem来显示其注释,但是如果不打开另一个,就无法隐藏一个注释。我可以在注释中添加一个按钮来关闭它,但我更希望在用户点击注释外部时将其关闭。有没有方便的方法 覆盖已经有一个

在Android中,我有一个MapQuest
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的人