有一些方法可以在Markers中制作OnLongClickListener而不会使它们可拖动吗? 我正在尝试显示一个长按单元标记的上下文菜单,因此我实现了OnMarkerDragListener接口以使用此代码处理它们:
@Override
public void onMarkerDragStart(Marker marker) {
marker.setDraggable(false);
if (mode == MODE_VIEW) {
registerForContextMenu(findViewById(R.id.map));
openContextMenu(findViewById(R.id.map));
unregisterForContextMenu(findViewById(R.id.map));
}
marker.setDraggable(true);
}
但是当我按下Marker时,她会向上移动!因为这是可拖动的方式。 我该怎么办?谢谢!
答案 0 :(得分:0)
目前没有针对标记的onLongClickListener
答案 1 :(得分:0)
您可以尝试在代码中添加另一个hack并强制原始位置。
marker.setDraggable(false);
LatLng originalPosition = mapWithOriginalPositionsOfAllMarkers.get(marker);
marker.setPosition(originalPosition);
这种黑客可能会导致视觉故障,但标记会回到应有的位置。
另外,您需要保留对原始职位的引用:
// Activity field
private Map<Marker, LatLng> mapWithOriginalPositionsOfAllMarkers = new HashMap<Marker, LatLng>();
// when adding marker:
LatLng position = ...
Marker marker = map.addMarker(new MarkerOptions().position(position));
mapWithOriginalPositionsOfAllMarkers.put(marker, position);