9

我的意思是如果我点击标记OnMarkerClickListener被调用,那么OnMapClickListener没有。即使我设置mMap.setOnMarkerClickListener(null);标记对象仍然会掩盖底层地图和对象的所有点击事件。如何Marker为所有用户交互设置透明?

4

4 回答 4

5

从 3.1.59 版本的库开始,这确实是标记的“限制”。

如果您真的需要它们作为标记,请在gmaps-api-issues上为MarkerOptions.clickable和发布功能请求Marker.setClickable

如果可以,请考虑使用其他视觉对象,例如GroundOverlay. 唯一的问题是它们都按地图缩放,与标记不同。最接近的是Circle零半径和 20-50 dp 笔划宽度,但这只是一个单色点。

于 2013-07-26T17:27:18.770 回答
4

根据有关标记的文档,如果您添加自己的侦听器并且 onMarkerClick() 方法返回 false,则将执行默认行为。

因此,在 onMarkerClick() 中只返回 true 并且不执行任何其他操作来完全覆盖默认值。

于 2013-07-26T15:04:19.377 回答
3

我为这个问题找到的唯一解决方法是执行与OnMarkerClickListener你相同的代码OnMapClickListener并返回false

getMap().setOnMarkerClickListener(new OnMarkerClickListener() {

    public boolean onMarkerClick(Marker marker) {
        onMapClick(marker.getPosition());
        return true;
    }
});
于 2013-10-21T09:52:54.253 回答
0

您可以跳过设置Marker.Title,在这种情况下,标记将无法点击。如果Marker.Tag您需要将一些数据(如 id 或名称)与标记相关联,而最终用户无法点击并查看它,请使用此选项。

于 2019-09-24T02:29:41.720 回答