Cómo habilitar el escucha de taps en el buscapersonas de vista en Android?

Estoy utilizando ver paginador para pasar entre las vistas en Android. Ahora necesito capturar el evento tap para cada una de las vistas. Cuando sobrescribo el oyente táctil para capturar el evento de toque, la acción de deslizar no ocurre y la pantalla permanece en la primera página misma. ¿Cómo agrego el oyente de tacto para ver paginador?

Código:

viewPager.setOnTouchListener(new OnTouchListener(){ @Override public boolean onTouch(View v, MotionEvent event) { mDetector.onTouchEvent(event); return true; }}); 

Para el código anterior soy capaz de capturar el evento tap, pero la acción deslizar se convierte en imposible.

5 Solutions collect form web for “Cómo habilitar el escucha de taps en el buscapersonas de vista en Android?”

Aquí te dejo un fragmento de mi código para detectar un "clic" en el OnTouchListener, espero que ayude

 mImagePager.setOnTouchListener(new OnTouchListener() { private float pointX; private float pointY; private int tolerance = 50; @Override public boolean onTouch(View v, MotionEvent event) { switch(event.getAction()){ case MotionEvent.ACTION_MOVE: return false; //This is important, if you return TRUE the action of swipe will not take place. case MotionEvent.ACTION_DOWN: pointX = event.getX(); pointY = event.getY(); break; case MotionEvent.ACTION_UP: boolean sameX = pointX + tolerance > event.getX() && pointX - tolerance < event.getX(); boolean sameY = pointY + tolerance > event.getY() && pointY - tolerance < event.getY(); if(sameX && sameY){ //The user "clicked" certain point in the screen or just returned to the same position an raised the finger } } return false; } }); 

Podemos usar Gestos ( Link1 , Link2 ):

 public boolean onTouchEvent (MotionEvent ev) 

¡Espero que esto ayude!

Nancy, no es necesario que anule manualmente los desplazamientos de página o los eventos táctiles. Simplemente agregue las páginas al ViewPager y ViewPager automáticamente se encargará de pasar.

Sin embargo, tiene que conectar los oyentes táctiles al objeto en cada página. Así que si la página 1 tiene un diseño lineal con muchos botones y necesita saber cuándo se hace clic en esos botones, debe adjuntar OnClickListeners para cada uno de esos botones.

¡Déjeme saber su caso de uso así que podemos entender mejor, porqué usted necesita descubrir cuando una página se ha hecho clic!

Sólo para añadir a la gran respuesta de Jorge, puede usar la distancia en lugar de la misma X y sameY, que es un poco más elegante. Muestra:

 // Ignore events that are swipes rather then touches float distX = event.getX() - pointX; float distY = event.getY() - pointX; double dist = Math.sqrt(distX * distX + distY * distY); if (dist > tolerance) { return false; } 

Ponga el evento click en la vista del elemento del viewpager dentro del viewPagerAdapter en el método instantiateItem como –

  @Override public Object instantiateItem(ViewGroup container, final int position) { // Declare Variables ImageView jive_image; inflater = (LayoutInflater) context .getSystemService(Context.LAYOUT_INFLATER_SERVICE); View itemView = inflater.inflate(R.layout.list_item_viewpager, container, false); itemView.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View view) { onBackPressed(); } }); // Add viewpager_item.xml to ViewPager ((ViewPager) container).addView(itemView); return itemView; } 
  • El ViewPagerIndicator no es fácil con 1000 páginas
  • Cambiar el fragmento frontal al hacer clic en un elemento de un SlidingMenu
  • Dos fragmentos en una página de viewpager
  • Trabajar con ViewPager y Fragmentos
  • Android ViewPager que genera una excepción IndexOutOfBounds al configurar el elemento / página actual
  • La vista de Fragmento de ViewPager se pierde cuando el fragmento padre de ViewPager se oculta y luego se muestra
  • Texto en PagerTabStrip no se muestra en la primera vista
  • La imagen de fondo de Android ralentiza la aplicación
  • Actualizar SlidingTabLayout
  • Android: RecyclerView dentro del viewpager vertical
  • ViewPager con límites de páginas anteriores y siguientes
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.