1

有一些方法可以使標記中的OnLongClickListener不會拖動? 我試圖展現一個上下文菜單,其中一個標誌是長點擊,我實現了OnMarkerDragListener接口使用此代碼來處理它們:Android谷歌地圖v2中的標記

@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); 
} 

但是當我按在她標記向上移動!因爲這就是可拖動的工作方式。 我該怎麼辦?謝謝!

回答

0

沒有爲標誌沒有onLongClickListener目前

0

您可以嘗試另一個黑客添加到您的代碼,並迫使原來的位置。

marker.setDraggable(false); 
LatLng originalPosition = mapWithOriginalPositionsOfAllMarkers.get(marker); 
marker.setPosition(originalPosition); 

這種黑客攻擊可能會導致視覺故障,但標記會回到它應該在的位置。

Additionaly你需要保持引用原來的位置:

// 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);