簡體   English   中英

Android Google Maps v2中的標記

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM