Создание OnDragListener для фрагмента карты Google v2

Я пытаюсь настроить прослушиватель onDrag для фрагмента карты Google, но не могу запустить событие перетаскивания. Поскольку карта не поддерживает события перетаскивания напрямую, я пытаюсь реализовать прослушиватель перетаскивания для представления. Я знаю о событии onMarkerDrag, но это не приносит мне пользы, так как я не пытаюсь перемещать маркеры.

Причина захвата событий перетаскивания карты двояка:

Сначала определить, панорамировал ли пользователь карту. Если нет, я бы хотел сохранить их местоположение на экране и анимировать их, если их нет на карте. Если они панорамировали карту, я предполагаю, что они знают, что они хотят видеть, и вынуждают местоположение на экране. (это похоже на то, что должно быть включено в API)

Вторая причина для отлова состоит в том, чтобы позволить пользователям рисовать линии и многоугольники на карте. Я могу сделать это с событиями onTap (добавление очков), но я бы хотел, чтобы они также могли сделать это от руки.

Мой код выглядит так:

основное занятие:

    mMap = ((MapFragment) getFragmentManager().findFragmentById(R.id.map)).getMap();
    setUpMapIfNeeded();
    mMapView = findViewById(R.id.map);
    myMapDragListener = new MapDragListener();
    mMapView.setOnDragListener(myMapDragListener);

Слушатель:

public class MapDragListener implements OnDragListener {
    /**
     * 
     */
    public MapDragListener() {
        super();
        say.logCat("MapDragListener: I'm ALIVE!!!!");
    }

    private AkamaiAnnounce say = new AkamaiAnnounce();
    private boolean inDrag;
    private boolean hasPanned=false;

    @Override
    public boolean onDrag(View v, DragEvent event) {
        say.logCat("MapDragListener.onDrag: " + event.toString());
        //String dotTAG = (String) getTag();
        if (event.getLocalState() != this) {
          return false;
        }
        boolean myResult = true;
        int action = event.getAction();
        float x = event.getX();
        float y = event.getY();
        switch (action) {
        case DragEvent.ACTION_DRAG_STARTED:
          inDrag = true;
          break;
        case DragEvent.ACTION_DRAG_LOCATION:
          break;
        case DragEvent.ACTION_DRAG_ENTERED:
          break;
        case DragEvent.ACTION_DRAG_EXITED:
          break;
        case DragEvent.ACTION_DROP:
          myResult = false;
          break;
        case DragEvent.ACTION_DRAG_ENDED:
          inDrag = false; // change color of original dot back
          hasPanned=true;
          break;
        default:
          myResult = false;
          break;
        }
        return false;
        //return myResult;

    }

    public boolean hasPanned() {
        return hasPanned;
    }

    public void setHasPanned(boolean hasPanned) {
        this.hasPanned = hasPanned;
    }

}

Карта работает отлично. Слушатель создает экземпляр, но мое событие onDrag никогда не срабатывает. Есть идеи?

Ответы на вопрос(4)

Ваш ответ на вопрос