Карта не прокручивается

Я пытаюсь создать простую активность карты с помощью библиотеки osmdroid
Карта отображается нормально, но просто не прокручивается. Я не могу понять, в чем проблема.

Вот код:
Активность метода onCreate

    setContentView(R.layout.activity_main);
    final MapView mapView = (MapView)findViewById(R.id.map);

    mapView.setBuiltInZoomControls(true);

    mapView.getController().setZoom(10);

    mapView.getController().setCenter(new GeoPoint(52.221, 6.893));

    ZoomControls mZoomControls = (ZoomControls)findViewById(R.id.zoomControls);
    mZoomControls.setOnZoomInClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            mapView.getController().zoomIn();
        }
    });
    mZoomControls.setOnZoomOutClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            mapView.getController().zoomOut();
        }
    });

И xml:

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    tools:context=".MainActivity" >


<org.osmdroid.views.MapView
    android:id="@+id/map"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:clickable="true"/>

<ZoomControls
    android:id="@+id/zoomControls"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_alignParentBottom="true"
    android:layout_centerHorizontal="true"
    android:layout_marginBottom="10dp" />

</RelativeLayout>

person pedja    schedule 02.06.2013    source источник


Ответы (2)


Удалять

android:clickable="true"

из вашего MapView. См. также Невозможно панорамировать или перемещать карту osmdroid.

person kurtzmarc    schedule 03.06.2013

РЕШЕНИЕ
Единственное решение (которое я нашел) состоит в том, чтобы вместо этого использовать фрагмент и раздувать представление карты.

Что-то вроде этого:

@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
        Bundle savedInstanceState) {
    mResourceProxy = new ResourceProxyImpl(inflater.getContext()
            .getApplicationContext());
    mMapView = new MapView(inflater.getContext(), 256, mResourceProxy);
    mMapView.setUseSafeCanvas(true);
    mMapView.setBuiltInZoomControls(true);
    mMapView.setMultiTouchControls(true);
    mMapView.getController().setZoom(10); //set initial zoom-level, depends on your need
    mMapView.getController().setCenter(new GeoPoint(52.221, 6.893));
    return mMapView;
}
person pedja    schedule 02.06.2013