Cuestión de gesto con mapview en la página de viewpager

La interfaz principal de mi aplicación es un viewpager donde el usuario sólo desliza las páginas horizontalmente para llegar a las distintas páginas. Una de las páginas tiene un google mapview (pegado abajo). Mi problema es que si el usuario está en la página del mapa y utiliza un gesto de diapositiva horizontal, la página se desliza a la siguiente página en lugar del mapa que se mueve hacia los lados. Es como si el viewpager está recibiendo el gesto antes del mapa.

Si el usuario es inteligente y comienza a deslizar el mapa en una dirección diagonal o vertical el mapa comienza a moverse y entonces el gesto puede continuar horizontalmente. Pero preferiría mover el mapa en lugar de la página en un simple gesto de diapositiva horizontal. La página siempre se puede deslizar con la vista de texto.

¿Hay alguna manera de hacer que esto suceda?
Gracias Gary

<?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:id="@+id/ContentPanel" android:layout_width="fill_parent" android:layout_height="fill_parent" android:orientation="vertical" > <TextView android:id="@+id/tvMAP" android:layout_width="match_parent" android:layout_height="wrap_content" android:text="Map" style="@style/bigtype" /> <com.google.android.maps.MapView android:id="@+id/mapview" android:layout_width="fill_parent" android:layout_height="fill_parent" android:apiKey="mykeygoeshere" android:clickable="true" /> </LinearLayout> 

Por supuesto que hay:

 public class CustomViewPager extends ViewPager { public CustomViewPager(Context context) { super(context); } public CustomViewPager(Context context, AttributeSet attrs) { super(context, attrs); } @Override protected boolean canScroll(View v, boolean checkV, int dx, int x, int y) { if(v instanceof MapView){ return true; } return super.canScroll(v, checkV, dx, x, y); } } 

Esto hará que el mapa ignore todas las diapositivas dentro del mapa y sólo se preocupan por las diapositivas / draggs fuera del mapa. Espero eso ayude. (Hago esto ahora mismo para una webview con desplazamiento horizontal)

EDIT: Se olvidó de mencionar que en lugar de ViewPager que necesita para utilizar el CustomViewPager en yout diseño.

 <com.yourpackage.CustomViewPager android:id="@+id/viewpager" android:layout_width="fill_parent" android:layout_height="fill_parent" /> 

Si utiliza Google Maps V2, utilice

ScrollShow.getClass (). GetPackage (). GetName (). StartsWith ("maps.") En el método canScroll :

 @Override protected boolean canScroll(View scrollingView, boolean checkV, int dx, int x, int y) { if (scrollingView.getClass().getPackage().getName().startsWith("maps.")) { return true; } return super.canScroll(scrollingView, checkV, dx, x, y); } 

Becase scrollingView es maps.jb cuando se usan mapas v2.

También en mi código, estas clases se utilizan:

 import com.google.android.gms.maps.GoogleMap; import com.google.android.gms.maps.SupportMapFragment; 
  • ¿Cómo obtener la lista de coordenadas de las rutas de la calle con la API de Google Maps para Android?
  • No entiende el método drawAt () para com.google.android.maps.Overlay
  • No se puede crear con gradle cuando Google Play Services se agrega como dependencia
  • Cómo obtener el formato E6 de la latitud de longitud para Google Maps en Android
  • Inicializar MapFragment mediante programación con Google Maps API v2
  • Abrir google maps a través de la intención de ubicación específica en android
  • Mapa de Google que muestra solo cuadros en blanco android
  • ¿Cómo puedo crear un borde de burbuja de voz para un icono personalizado de Google Marker con Picasso?
  • ¿Cómo almacenar en caché android.graphics.path o Bitmap cuando se usan Overlays?
  • Use .GetMapAsync en lugar de otro método .getMap con Google Play Services (Xamarin)
  • ¿Cómo puedo encontrar la latitud y la longitud de la dirección?
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.