信息窗口(谷歌地图)捕获关闭窗口事件

6
你在关闭信息窗口时触发操作的方式是什么?我找不到任何监听器。我考虑运行一些后台Runnable来检查marker.isInfoWindowShown()。
我希望实现的功能是,在用户单击点(infoWindow出现)时,在我的地图上显示按钮,屏幕底部也有这个按钮。当infoWindow消失时,按钮也不再可见。
有没有任何提示可以让我了解哪些监听器应该阅读?

可能是Detect if user "deselects" marker on google map的重复问题。 - MaciejGórski
2个回答

13

目前在Google Maps Android API中,没有直接监听器对应于标记信息窗口的关闭。但是您可以通过检查以下事件来实现所需的功能:

1、GoogleMap.OnMapClickListener:当用户点击地图时,当前可见的任何信息窗口都将被关闭。因此,您可以在此侦听器中添加逻辑,以执行在信息窗口关闭时所需的功能。

2、marker.hideInfoWindow():另一个导致信息窗口关闭的原因是如果在标记上调用hideinfowindow方法,则应在调用此方法后立即添加所需的信息窗口关闭功能。


现在有一个直接的监听器,GoogleMap.OnInfoWindowCloseListener,正如另一个答案所提到的。 - Sinkeat

7

虽然我回答晚了,但现在可以使用以下方法知道Google地图信息窗口何时关闭。

 @Override
    public void onMapReady(GoogleMap googleMap) {
        mMap = googleMap;

        mMap.setOnInfoWindowCloseListener(new GoogleMap.OnInfoWindowCloseListener() {
            @Override
            public void onInfoWindowClose(Marker marker) {
               //hide or do something you want
            }
        });
}

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接