如何在android中的谷歌地图V2上的标记自定义信息窗口上执行点击操作

时间:2013-05-17 07:47:22

标签: android google-maps-android-api-2

我正在我的app中实现谷歌地图V2。我已经添加了自定义信息窗口到标记。有三个图像取消,删除&编辑。

onclick,取消图片窗口隐藏。 删除数据删除&在编辑对话框上打开以进行编辑。

我的问题是,如何对这些图像执行点击操作?

Image

3 个答案:

答案 0 :(得分:9)

没有直接的方法可以做到这一点,但似乎有解决办法(我还没有测试过)。您可以在此答案中看到详细说明:https://stackoverflow.com/a/15040761/2183804

答案 1 :(得分:8)

https://developers.google.com/maps/documentation/android/marker

引用文档

信息窗口不会考虑普通视图(如触摸或手势事件)的典型交互性。但是您可以在整个信息窗口中收听通用点击事件,如下所述。

信息窗口不是实时视图,而是视图在地图上呈现为图像。因此,您在视图上设置的任何侦听器都将被忽略,并且您无法区分视图各个部分上的单击事件。 建议您不要在自定义信息窗口中放置交互式组件(如按钮,复选框或文本输入)。

您可以使用OnInfoWindowClickListener收听信息窗口中的点击事件。要在地图上设置此侦听器,请调用GoogleMap.setOnInfoWindowClickListener(OnInfoWindowClickListener)。当用户点击信息窗口时,将调用onInfoWindowClick(Marker),并且信息窗口将以默认突出显示颜色突出显示(Holo Blue用于运行Ice Cream Sandwich的设备,而较新的橙色用于早期版本的Android)。

https://developers.google.com/maps/documentation/android/reference/com/google/android/gms/maps/GoogleMap.OnInfoWindowClickListener

答案 2 :(得分:-1)

即使这是一个老问题,我仍然认为人们对按钮,列表等信息窗口感兴趣。

您可以查看以下库 - https://github.com/Appolica/InteractiveInfoWindowAndroid

您基本上可以使用此库提供的管理器将您自己的片段添加为信息窗口。以下是可以轻松使用库的片段。查看上面的链接以获取更多信息

 final MapInfoWindowFragment mapInfoWindowFragment =
    (MapInfoWindowFragment) getSupportFragmentManager().findFragmentById(R.id.infoWindowMap);
 final InfoWindow infoWindow = new InfoWindow(marker, markerSpec, fragment);
// Shows the InfoWindow or hides it if it is already opened.
 mapInfoWindowFragment.infoWindowManager().toggle(infoWindow, true);