Android “balayez vers la gauche ou la droite pour supprimer”, geste sur un élément de liste, ICS Style

Je suis en train de mettre en œuvre le "balayez vers la gauche ou la droite pour supprimer le" geste qui est présent pour les notifications sous Android ICS et au-dessus.
J'ai une listview dans mon application. J'ai le geste détecteur de travail.
MAIS quand j'ai faites glisser le doigt de gauche à droite sur un élément de la liste, je veux que le point de se déplacer avec mon doigt.Quand je bouge mon doigt, au-delà d'un certain point, alors seulement la suppression de l'élément lui-même.Le OnFling() méthode que j'ai actuellement ne permet pas d'atteindre cet.

Comment puis-je modifier le OnFling() la méthode pour faire le point de se déplacer le long avec mon doigt ?

Mon Geste classe écouteur est

class GestureListener extends SimpleOnGestureListener {
private static final int SWIPE_MIN_DISTANCE = 50;
private static final int SWIPE_MAX_OFF_PATH = 100;
private static final int SWIPE_THRESHOLD_VELOCITY = 25;
private MotionEvent mLastOnDownEvent = null;
@Override
public boolean onDown(MotionEvent e) {
mLastOnDownEvent = e;
return super.onDown(e);
}
@Override
public boolean onSingleTapUp(MotionEvent e) {
//TODO Auto-generated method stub
Toast.makeText(getApplicationContext(), "On Single TAP up ", Toast.LENGTH_SHORT).show();
return super.onSingleTapUp(e);
}
@Override
public boolean onFling(MotionEvent e1, MotionEvent e2, float velocityX,
float velocityY) {
if (e1 == null) {
e1 = mLastOnDownEvent;
}
if (e1 == null || e2 == null) {
return false;
}
float dX = e2.getX() - e1.getX();
float dY = e1.getY() - e2.getY();
if (Math.abs(dY) < SWIPE_MAX_OFF_PATH
&& Math.abs(velocityX) >= SWIPE_THRESHOLD_VELOCITY
&& Math.abs(dX) >= SWIPE_MIN_DISTANCE) {
if (dX > 0) {
int position = tasks.pointToPosition((int) e1.getX(),
(int) e1.getY());
int _id = (int) tasks.getItemIdAtPosition(position);
databaseConnector.deleteContact(_id);
new DeleteRow(_id, contactAdapter, getApplicationContext());
contactAdapter.notifyDataSetChanged();
Toast.makeText(getApplicationContext(),
"Right Swipe" + _id, Toast.LENGTH_SHORT).show();
} else {
Toast.makeText(getApplicationContext(), "Left Swipe",
Toast.LENGTH_SHORT).show();
}
return true;
}
return false;
}
Si vous ne l'avez pas déjà fait, vous pouvez coup d'oeil au Roman Nurik mise en œuvre: plus.google.com/113735310430199015092/posts/Fgo1p5uWZLu ou Jake de Wharton backport à l'aide de NineOldAndroids: github.com/JakeWharton/SwipeToDismissNOA

OriginalL'auteur newbie | 2013-02-25