MyLocationOverlay dispatchTap () не распространяется - PullRequest
6 голосов
/ 06 февраля 2011

У меня есть MapView с некоторыми наложениями и подклассом MyLocationOverlay поверх них, потому что я хочу, чтобы текущее местоположение пользователя отображалось над другими маркерами.

Я работаю с onTap событие для маркеров, чтобы показать панель с информацией о повернутом маркере, и если постукивать за пределами маркера (даже в маркере местоположения), панель должна скрыться.

Если я нажимаю на маркер или в пустомОбнаружьте, что все в порядке, панель показывает или скрывает, как и ожидалось, но если я нажму на маркер местоположения, ничего не произойдет (если маркер местоположения находится над другим маркером, информация не отображается, и если он находится снаружи, и информация показывает, что это не так)t hide).

В моей MyLocationOverlay я переопределил dispatchTap() функцию, возвращающую ложь, как указано в документах :

Возвращает: True, если этокран был обработан; false, если он должен быть отправлен на другие оверлеи .

, но все равно не работает, даже я попытался вернуть true на всякий случай, но ничего ...

Кто-нибудь знает, как распространить событие onTap на другие оверлеи?

1 Ответ

1 голос
/ 23 декабря 2011

"Исправлено начиная с android 2.0, это была известная проблема некоторых телефонов"

С - Распространение событий в нескольких слоях android google maps

"Если вывидя элементы наложения, которые вы помещаете в MapView, ваш onTap () будет срабатывать при нажатии на любой из элементов наложения. onTap (точка GeoPoint, представление MapView) всегда запускается независимо от того, где пользователь нажимает.чтобы увидеть, запущен ли он. onTap (int i) будет запускаться после него в случае, если щелкнет элемент наложения. "

From - https://stackoverflow.com/questions/6680387/ontap-event-on-map-is-not-fired

...