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
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;
}
}
Esta pregunta es antigua, pero afortunadamente Jake Wharton copió un código publicado para ICS aquí; esto debería permitirle deslizar filas individuales: https://github.com/JakeWharton/SwipeToDismissNOA
Implementamos detección de barrido por fila para revelar acciones y descartar elementos aquí https://github.com/47deg/android-swipelistview . Espero que ayude
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
}
}