Как бы я прослушал LongClick на элементе наложения в Google MapView? - PullRequest
0 голосов
/ 03 апреля 2012

Я новичок в Android и столкнулся с проблемой, пытаясь реализовать функцию в своем приложении.Я хочу, чтобы мои пользователи могли долго щелкать элемент наложения (это автобусная остановка) и добавлять этот маркер (номер остановки и адрес) на вкладку «Избранное».Проблема в том ... как прослушивать и обрабатывать длинный щелчок (нажатие) на элементе наложения ??

В настоящее время я @ переопределяю функцию onTap в своем классе Overlay для обработки обычных нажатий, но я не вижу функции onLongTap для переопределения в документации ... Может кто-нибудь установить меня по правильному пути?Я что-то упускаю здесь очевидное?Спасибо за чтение этого

PS Это мой первый ТАК вопрос: -)

1 Ответ

1 голос
/ 03 апреля 2012

Возможно, вы хотите переопределить onTouchEvent(MotionEvent, MapView) для более сложных взаимодействий с пользователем.Для «длинного» касания вы должны запустить какой-то таймер, который будет показывать, как долго пользователь нажимал на определенный элемент наложения.Как только достигнут определенный порог - я полагаю, что задержка по умолчанию для «длинного» нажатия составляет примерно 1500 мс - тогда вы выполняете соответствующий код.

В качестве альтернативы, вы можете посмотреть на отображение карты .-overlay-manager проект, который, исходя из его чтения, должен предлагать именно то, что вы ищете (а затем и некоторые):

OnOverlayGestureListener

Упрощенный OnGestureListener.ManagedOverlayer использует свою собственную встроенную функцию GestureDetector, которая запускает такие события, как:

  • onSingleTap (MotionEvent, ManagedOverlay, GeoPoint, OverlayItem)
  • onDoubleTap (MotionEvent, ManagedOverlay, GeoPoint, OverlayI)1020 *
  • onLongPress (MotionEvent, ManagedOverlay, GeoPoint, OverlayItem)
  • onZoom (ZoomEvent, ManagedOverlay) onScrolled (...)
...