繁体   English   中英

Google Maps Android v2-检测标记InfoWindow关闭

[英]Google Maps Android v2 - Detecting Marker InfoWindow Close

现在,我有一些标记,单击这些标记后,便会在后台自动刷新其信息窗口的内容。

事实是,一旦用户关闭信息窗口(例如单击地图上的其他位置),后台任务仍然继续。

有没有一种方法可以检测何时关闭标记InfoWindow,以便随后可以关闭任务?

您可以在地图上使用setOnMapClickListener,并且可以在onMapClick方法内检查任务是否仍在运行,如果是,则结束任务。

您一次只能打开一个InfoWindow ,这意味着您可以跟踪打开的InfoWindow

mMap.setInfoWindowAdapter(new GoogleMap.InfoWindowAdapter() {
    @Override
    public View getInfoWindow(Marker marker) {
        Log.e(TAG, "Info window requested for " + marker);
        mLastMarker = marker;
        return null; // Returning null will load the default InfoWindow
    }

    @Override
    public View getInfoContents(Marker marker) {
        return null;
    }
});

现在,在每个地图上单击,您可以检查特定标记上的任务是否仍在运行:

mMap.setOnMapClickListener(new GoogleMap.OnMapClickListener() {
    @Override
    public void onMapClick(LatLng latLng) {
        if (mLastMarker != null) {
            mLastMarker = null;
            // Stop task
        }
    }
});

如果需要,还可以在更改InfoWindow时停止任务:

@Override
public View getInfoWindow(Marker marker) {
    if (mLastMarker != null) {
        // Stop task for mLastMarker
    }

    Log.e(TAG, "Info window requested for " + marker);
    mLastMarker = marker;
    return null; // Returning null will load the default InfoWindow
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM