Pregunta

Tengo una vista FrameLayout que contiene uno control (MapView-like) y algunos botones adicionales superpuestos ella. (El xml diseño es a continuación).

Quiero permitir al usuario PAN / desplazar la vista principal usando no solo toque, sino también la rueda de desplazamiento. El problema es -. Utilizando la rueda de desplazamiento simplemente cambia el foco entre todos los controles de la disposición, y me parece que no puede encontrar una manera de contener el onTrackballEvent a sólo el MainView

Cualquier sugerencia es bienvenida, gracias de antemano.

<?xml version="1.0" encoding="utf-8"?>

<merge xmlns:android="http://schemas.android.com/apk/res/android"   
    android:layout_width="fill_parent" android:layout_height="fill_parent">
<FrameLayout android:id="@+id/pageView" 
    xmlns:panel="http://schemas.android.com/apk/res/com.yappa"
      xmlns:android="http://schemas.android.com/apk/res/android"
  android:layout_width="fill_parent"
  android:layout_height="fill_parent">

    <MainView
        android:id="@+id/mainView" 
        android:layout_width="fill_parent"
        android:layout_height="wrap_content">
    </MainView>


    <ZoomControls android:id="@+id/ZoomControls01"
        android:layout_gravity="bottom|center"
        android:layout_height="wrap_content" android:layout_width="wrap_content">
    </ZoomControls>

    <Panel
          ....
    </Panel>

</FrameLayout>

</merge>
¿Fue útil?

Solución

El truco es para anular el dispatchTrackball en la vista personalizada, y apoderarse de los acontecimientos.

Espero que esto ayude a alguien.

Otros consejos

Toma panorámica es simplemente implementa como se ha mencionado antes que la propiedad enfocable, establece el atributo enfocable de su MapView a cierto y de hecho va a desplazar el mapa con la rueda de desplazamiento cuando se ha puesto el foco en MapView.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top