【问题标题】:Google Maps Android v2 - Detecting Marker InfoWindow CloseGoogle Maps Android v2 - 检测标记信息窗口关闭
【发布时间】:2015-04-08 15:39:39
【问题描述】:

现在我有一些标记,当点击这些标记时,会开始在后台自动刷新其信息窗口的内容。

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

有没有办法检测标记信息窗口何时关闭,以便我可以关闭任务?

【问题讨论】:

    标签: java android google-maps


    【解决方案1】:

    您一次只能打开一个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
    }
    

    【讨论】:

      【解决方案2】:

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

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2014-02-18
        • 2014-05-14
        • 1970-01-01
        • 1970-01-01
        • 2014-11-13
        • 1970-01-01
        • 2019-03-14
        • 2013-03-29
        相关资源
        最近更新 更多