[英]Markers in Android Google Maps v2
有一些方法可以使Markers中的OnLongClickListener不拖拽? 我試圖顯示一個上下文菜單,其中長按了Marker,因此我實現了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);
}
但是當我按標記時,她會向上移動! 因為這是可拖動方式的工作方式。 我該怎么辦? 謝謝!
當前沒有用於標記的onLongClickListener
您可以嘗試向您的代碼中添加另一個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);
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.