У меня есть приложение для Android с действием, которое пролистывает (слева направо) между 3 представлениями. В одном из этих представлений отображаются GoogleMaps. В дополнение к этому мне нужна прокрутка вверх и вниз (не на карте, а в двух других представлениях), чтобы отобразить весь контент. У меня была проблема с тем, чтобы приложение понимало жест смахивания, а не прокрутку, когда это необходимо, но я нашел отличное решение здесь: http://www.jmstudio.org/archives/391
Моя проблема сейчас в том, что в моем MapView я хочу показать позицию пользователя. Поэтому я реализовал класс MapOverlay следующим образом:
защищенный класс MyLocationOverlay расширяет com.google.android.maps.Overlay {
@Override
public boolean draw(Canvas canvas, MapView mapView, boolean shadow, long when) {
Paint paint = new Paint();
super.draw(canvas, mapView, shadow);
// Converts lat/lng-Point to OUR coordinates on the screen.
Point myScreenCoords = new Point();
mapView.getProjection().toPixels(p, myScreenCoords);
paint.setStrokeWidth(1);
paint.setARGB(255, 255, 255, 255);
paint.setStyle(Paint.Style.STROKE);
Bitmap bmp = BitmapFactory.decodeResource(getResources(), R.drawable.positiondot);
canvas.drawBitmap(bmp, myScreenCoords.x, myScreenCoords.y, paint);
return true;
}
}
И тогда из моей деятельности я звоню
List<Overlay> mapOverlays;
MyLocationOverlay mapOverlay;
mapOverlays = mapView.getOverlays();
mapOverlay = new MyLocationOverlay();
mapOverlays.add(mapOverlay);
Это работает, но как только положение отображается, смахивание не распознается. И если пользователь удаляет точку (вызывается нажатие кнопки mapOverlays.removeAll(mapOverlays);), то свайп снова работает, но, конечно, позиция больше не отображается. Как будто список по какой-то причине отключает свайп.
Поэтому я хочу, чтобы отображаемая позиция и смахивание работали одновременно. Мой код для считывания более или менее соответствует тому, который я предоставил в ссылке (только что реализовал свои представления в xml). Что не так и как исправить?
Заранее спасибо!