Мне нужно определить, когда MapView был прокручен или увеличен, как событие «moveend» в API javascript.Я хотел бы подождать до тех пор, пока представление не перестанет двигаться, поэтому я могу определить, нужно ли мне запрашивать у моего сервера элементы внутри прямоугольника просмотра и, если это так, отправлять запрос.(на самом деле я отправляю запрос на площадь немного большую, чем у прямоугольника просмотра)
Очевидно, я бы не стал отправлять запрос данных, если представление все еще движется.Но еще хуже то, что я не знаю, что мне нужно отправить еще один запрос, оставляя области карты без маркеров.
В настоящее время я создаю подкласс MapView и обрабатываю onTouchEvent следующим образом:
public boolean onTouchEvent(android.view.MotionEvent ev) {
super.onTouchEvent (ev);
if (ev.getAction() == MotionEvent.ACTION_UP) {
GeoPoint center = getMapCenter();
int latSpan = getLatitudeSpan(), lngSpan = getLongitudeSpan();
/* (check if it has moved enough to need a new set of data) */
}
return true;
}
Проблема в том, что я не знаю, остановилось ли представление, поскольку прокрутка имеет тенденцию иметь инерцию и может продолжать проходить после события "ACTION_UP".
Есть ли какое-либо событие, к которому я могу подключиться,предупредить меня, когда просмотр карты будет перемещен (или увеличен)?Если нет, кто-нибудь написал логику, чтобы обнаружить это?Теоретически я мог бы сделать предположение, посмотрев на все действия, и назначить что-нибудь, чтобы прийти немного позже, и проверить это ... но ... это кажется грязным и PITA.Но если кто-то уже написал это ....:)