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