Как остановить класс MapContainer в Codenameone от перетаскивания / панорамирования - PullRequest
0 голосов
/ 25 августа 2018

Я использую класс MapContainer для отображения карты Google на Android.

Как я могу помешать пользователю перетаскивать карту в новое местоположение?то есть.хочу, чтобы карта оставалась фиксированной в заданных координатах.

Я пытался использовать MapContainer.setEnabled (false), но, похоже, это работает только в симуляторе и не действует при развертывании на реальном устройстве Android.

TIA.

1 Ответ

0 голосов
/ 25 августа 2018

Панорамирование обрабатывается на родной карте, которая обрабатывает свои собственные события. Поскольку эти события происходят в потоке пользовательского интерфейса Android, кодовое имя Один не может перехватить их без введения снижения производительности.

У вас есть два варианта:

  • Перехват событий в нативном коде Android
  • Фиксировать позицию после факта

Второе намного проще, просто используйте прослушиватель карты, чтобы обнаружить изменения, затем панорамируйте карту с помощью API обратно в исходное местоположение. Однако это может создать нежелательный UX, в этом случае единственный вариант - использовать собственный код.

Вы можете сделать это, изменив код cn1lib , и вы даже можете добавить функцию обратно, используя запрос на извлечение. Это должно быть относительно легко реализовать в нативной карте, так как оно, вероятно, должно отображаться в паре сеттер / геттер в API, например. setPanEnabled.

...