Indicadores de flecha izquierda-derecha sobre un ViewPager

Quiero mostrar las flechas izquierda y derecha sobre mi ViewPager, para indicar swiping.

He añadido dos ImageButtons sobre el ViewPager-elemento, pero esas áreas, a continuación, bloquear el ViewPager de desencadenar el "swiping".

También quiero pulsar sobre esas flechas para activar el fragmento para cambiar en consecuencia.

En resumen: Los ImageButtons no deben interferir con el deslizamiento, pero deben registrarse pulsando.

¿Cómo puedo conseguir esto? ¡Gracias!

4 Solutions collect form web for “Indicadores de flecha izquierda-derecha sobre un ViewPager”

El código siguiente funcionó perfectamente para mí. Nota: Utilice FrameLayout ya que permite vistas superpuestas

<FrameLayout android:layout_width="match_parent" android:layout_height="wrap_content" android:orientation="horizontal"> <android.support.v4.view.ViewPager android:id="@+id/viewpager" android:layout_width="wrap_content" android:layout_height="200dp" /> <ImageButton android:id="@+id/left_nav" android:layout_width="48dp" android:layout_height="48dp" android:layout_gravity="center_vertical|left" android:src="@drawable/ic_chevron_left_black_24dp" /> <ImageButton android:id="@+id/right_nav" android:layout_width="48dp" android:layout_height="48dp" android:layout_gravity="center_vertical|right" android:src="@drawable/ic_chevron_right_black_24dp" /> </FrameLayout> 

La siguiente parte que utilicé para controlar los eventos de clic de ImageButton

 viewPager = (ViewPager) view.findViewById(R.id.viewpager); leftNav = (ImageButton) view.findViewById(R.id.left_nav); rightNav = (ImageButton) view.findViewById(R.id.right_nav); // Images left navigation leftNav.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { int tab = viewPager.getCurrentItem(); if (tab > 0) { tab--; viewPager.setCurrentItem(tab); } else if (tab == 0) { viewPager.setCurrentItem(tab); } } }); // Images right navigatin rightNav.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { int tab = viewPager.getCurrentItem(); tab++; viewPager.setCurrentItem(tab); } }); 

Salida

Introduzca aquí la descripción de la imagen

Me imaginé una solución. Es muy sencillo.

En lugar de usar ImageButtons para mostrar las flechas, ahora uso ImageViews porque transmiten cualquier evento táctil a la capa debajo.

Entonces, pongo botones transparentes en los fragmentos en sí, de esa manera no bloquearán el comportamiento de barrido de ViewPager, sino que dispararán eventos onClick!

No es necesario administrar el índice actual para esto o para manejar cualquier swiping manualmente. Simplemente llame al método viewPager.arrowScroll(int direction) en los eventos de clic de las flechas izquierda y derecha.

En pocas palabras siga estos 2 sencillos pasos:

  1. Implemente 2 ImageViews / ImageButtons / Botones para flechas izquierda y derecha.
  2. Al hacer clic en ellos, llame al:

    A) si se hace clic en la flecha izquierda – viewPager.arrowScroll(View.FOCUS_LEFT);

    B) si se hace clic en la flecha derecha – viewPager.arrowScroll(View.FOCUS_RIGHT);

Primero use el diseño relativo como su disposición principal

Segundo, a continuación, agregue el paginador de vista dentro de él con el atributo parental de coincidencia en él

Tercero tomar dos botones de imagen sobre el paginador de vista, pero en virtud de la jerarquía de la disposición de los padres les dan centro vertical como una gravedad y mantener su lado como la derecha y la izquierda según su requisito

Cuarto escribir código funcional para los botones

Quinto toma el contador estático para conseguir la página actual del paginador de la visión

En el botón izquierdo y derecho menos y más el contador del buscapersonas. Y de acuerdo con que muestran datos en vista paginador

Esta es la lógica simple para el código que usted puede buscar en google lo obtendrá fácilmente

  • El método makeText en el tipo Toast no es aplicable para los argumentos
  • ¿Cómo podemos crear un visor cilíndrico?
  • Animación FAB con viewpager / tabslider
  • Añadir y quitar dinámicamente la vista a viewpager
  • Android - Utilizar el dedo de izquierda a derecha para volver
  • Android: Implementación de Viewpager de dos vías sin fin
  • ¿Cómo tener un efecto de paralaje entre 2 ViewPagers?
  • ViewPager Circular con menos de 4 visitas
  • Establecer la página predeterminada de ViewPager en Android
  • Swiping de Android, usando ViewPager sin pestañas
  • Deslizar entre imágenes filtradas para Android
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.