我的意思是如果我点击标记OnMarkerClickListener
被调用,那么OnMapClickListener
没有。即使我设置mMap.setOnMarkerClickListener(null);
标记对象仍然屏蔽底层地图和对象的所有点击事件。
如何为所有用户交互设置Marker
透明?
答案 0 :(得分:5)
这确实是3.1.59版本库中标记的“限制”。
如果您确实需要将它们作为标记,请在MarkerOptions.clickable
和Marker.setClickable
gmaps-api-issues上发布功能请求。
如果可以,请考虑使用其他可视对象,例如: GroundOverlay
。唯一的问题是它们都与地图一起扩展,与标记不同。最接近的是Circle
,半径为零,笔画宽度为20-50 dp,但这只是一个单色点。
答案 1 :(得分:4)
根据关于标记的docs,如果添加自己的Listener并且onMarkerClick()方法返回false,则将执行默认行为。
因此,在onMarkerClick()中只返回true,不执行任何操作以完全覆盖默认值。
答案 2 :(得分:3)
我发现此问题的唯一解决方法是在OnMarkerClickListener
中执行与OnMapClickListener
中相同的代码并返回false
:
getMap().setOnMarkerClickListener(new OnMarkerClickListener() {
public boolean onMarkerClick(Marker marker) {
onMapClick(marker.getPosition());
return true;
}
});
答案 3 :(得分:0)
您可以跳过设置Marker.Title
,在这种情况下标记将无法单击。如果您需要将某些数据(例如ID或名称)与标记相关联,而最终用户无法点击查看,请使用Marker.Tag
。