studio programacion para herramientas desarrollo con avanzado aplicaciones android listview gesture swipe

android - programacion - Detección de deslizamiento para cada fila de listview



manual android studio avanzado (6)

Tengo una lista de videos ubicados en la tarjeta SD. En este punto, solo necesito ayuda para crear gestos o deslizar la detección de cada fila en la vista de lista. Gracias a esta pregunta en la detección de gestos de stackoverflow Fling en el diseño de la cuadrícula , implementé el gesto en la vista de lista. Ahora detecta fácilmente cuando el usuario se desliza en la dirección correcta o la izquierda. Pero este gesto es para toda la lista. Solo quiero saber cómo puedo implementar esta detección de barrido para filas individuales. Por ejemplo, la aplicación ahora hace un brindis que imprime "Deslizar a la derecha", "Deslizar a la izquierda". Solo quiero que sea como "Deslizar hacia la derecha en la fila n. ° 1", "Deslizar hacia la izquierda en la fila n. ° 3", etc. Espero que mi pregunta sea clara.

Esperando algunas respuestas útiles. Gracias


Creo que lo que estás buscando es SwipeView (o incluso ViewFlow ) en lugar de la detección de gestos de Android estándar.


Estoy usando el enfoque por artículo en mi solución: mira aquí Mi código de detección de deslizamiento puede ser un poco diferente de la detección de barrido estándar, pero funciona perfectamente para mí. Y estoy usando etiquetas adjuntas para obtener los datos relacionados con los artículos. Espero que ayude, pero si tienes algunas preguntas házmelo saber y trataré de explicarlo con más detalle.


Como Per My Opinion es Use Boolean para el elemento, cuando ese elemento se toca configurado como verdadero, usando onTouchListener,

ListItem.setOnTouchListener(new View.OnTouchListener() { @Override public boolean onTouch(View arg0, MotionEvent event) { click=true; return click; } });`

Entonces puedes anular esto:

@Override public boolean dispatchTouchEvent(MotionEvent ev){ super.dispatchTouchEvent(ev); Log.v("Inside", "=====Dispatch Event==="); if(click){ Log.v("Inside", "=====Dispatch Event=T=="); click=false; return gestureDetector.onTouchEvent(ev); }else{ return false; } }




Eche un vistazo a esta respuesta y use el método onFling dentro del evento onFling

@Override public boolean onFling(MotionEvent e1, MotionEvent e2, float velocityX, float velocityY) { try { Toast.makeText( listAdapter.getItem( listView.pointToPosition(Math.round(e1.getX()), Math.round(e1.getY())).toString()); return super.onFling(); } catch( Exception e ) { // do nothing } }