Элементы управления масштабированием Mapview не отображаются, если я переопределяю метод onTouchEvent

92
13

Я переопределяю onTouchEvent, чтобы я мог обнаружить, где на карте было нажато. Но теперь мои органы управления увеличением исчезли. Мой onTouchEvent:

public boolean onTouchEvent(MotionEvent event, MapView mapView) {

final int action=event.getAction();
final int x=(int)event.getX();
final int y=(int)event.getY();
boolean result=false;

if (action==MotionEvent.ACTION_DOWN) {
//Log.d(TAG, "down");
result=true;

}
if (action==MotionEvent.ACTION_MOVE) {

//Log.d(TAG, "move");
result=true;
}
else if (action==MotionEvent.ACTION_UP) {

GeoPoint pt=mapView.getProjection().fromPixels(x,
y);

OverlayItem toDrop=new OverlayItem(pt, "MyLoc","Tukaj me poberite");

locations.clear();
locations.add(toDrop);
populate();

result=true;
}

return(result || super.onTouchEvent(event, mapView));
}

Что я делаю не так?

спросил(а) 2011-10-11T20:50:00+04:00 9 лет назад
1
Решение
58

Вы должны всегда звонить

super.onTouchEvent(event, mapView));

для нормальной работы Mapview. Итак, последняя строка вашего кода

return(result || super.onTouchEvent(event, mapView));

следует изменить на

super.onTouchEvent(event, mapView);
return true;

ответил(а) 2011-10-12T10:45:00+04:00 9 лет назад
Ваш ответ
Введите минимум 50 символов
Чтобы , пожалуйста,
Выберите тему жалобы:

Другая проблема