【问题标题】:How do I disable click on a map marker in android?如何在android中禁用点击地图标记?
【发布时间】:2015-04-18 20:45:38
【问题描述】:

我编写了自定义位置侦听器,它每 10 分钟检查一次用户的位置,并更新地图上表示用户位置的标记。问题是标记是可点击的,即它显示了一个按钮来获取到标记的方向。我想禁用它,我该怎么做?

这是创建/更新标记的函数

 public void updateUserMarker() {
        Double temp_latitude = ((MainActivity)mContext).mLatitude;
        Double temp_longitude = ((MainActivity)mContext).mLongitude;

        if(mMap!=null) {
            if (user_marker == null) {
                MarkerOptions markerOptions = new MarkerOptions().position(new LatLng(temp_latitude, temp_longitude));
                markerOptions.icon(BitmapDescriptorFactory.fromResource(R.drawable.my_marker_icon));
                user_marker = mMap.addMarker(markerOptions);
            } else {
                user_marker.setPosition(new LatLng(temp_latitude, temp_longitude));
            }
        }

    }

【问题讨论】:

    标签: android google-maps location


    【解决方案1】:

    试试这个代码。

    mMap.setOnMarkerClickListener(new GoogleMap.OnMarkerClickListener() {
            @Override
            public boolean onMarkerClick(Marker marker) {
                return true;
            }
        });
    

    返回 true 也会阻止打开信息窗口。

    将其与ClusterManager 一起使用:

    mMap.setOnMarkerClickListener(new GoogleMap.OnMarkerClickListener() {
            @Override
            public boolean onMarkerClick(Marker marker) {
                if (marker == user_marker) {
                   return true;
                }
                return clusterManager.onMarkerClick(marker);
            }
        });
    

    【讨论】:

    • 这对我不起作用。我已经在使用 android 的 ClusterManager 作为我的点击监听器了。
    • 您可以拦截点击并检查是否是您的位置标记被点击。所以在你的点击监听器中你会这样做:if (marker == user_marker) return trueelse return clusterManager.onMarkerClick(marker)
    猜你喜欢
    • 2013-04-02
    • 1970-01-01
    • 1970-01-01
    • 2013-04-05
    • 1970-01-01
    • 2013-08-07
    • 2015-10-06
    • 1970-01-01
    • 2020-06-18
    相关资源
    最近更新 更多