J'ai le gesturelistener suivant:
private class GestureListener extends SimpleOnGestureListener {
private boolean newEvent = true;
@Override
public boolean onDoubleTap(MotionEvent e) {
document.rescale();
refreshImage();
return true;
}
public boolean onDown(MotionEvent evt){
newEvent = true;
return false;
}
@Override
public boolean onScroll(MotionEvent e1, MotionEvent e2,
float distanceX, float distanceY) {
if (!document.isScaled() && newEvent) {
Vector2D v = new Vector2D(e2).minus(new Vector2D(e1));
if (v.getX() > 60 || v.getX() < -60){
if (v.getX() < 0)
next();
else
previous();
newEvent = false;
}
} else {
img.notifyScroll(-distanceX, -distanceY);
img.invalidate();
}
return true;
}
@Override
public boolean onSingleTapConfirmed(MotionEvent e) {
switchSideBar();
return true;
}
}
3 Réponses :
ONTODOWN () code> doit retourner true code> même si vous ne voulez pas réagir à cet événement em>, sinon cela fera le détecteur Jeter tout événement suivant et donc tout geste. P>
Hmm ... je l'ai fait et travaille maintenant, je suis confus, j'ai d'autres cours avec des retours faussement annulés et fonctionnent.
@Marcos euh ... qui me confond aussi maintenant ... cette incohérence pourrait faire une bonne question à laquelle je suppose.
si vous utilisez ou non http://developer.android.com/training/gestures/detector .html # Détecter P> gesturetector.ongesturelistener code>, il est préférable de mettre en œuvre une méthode indown () code> qui renvoie true. En effet, tous les gestes commencent par un message ONTODOWN () code>. Si vous retournez FALSE de ONTODOWN () CODE>, comme gestureTector.simpleongesturelistener code> fait par défaut, le système suppose que vous souhaitez ignorer le reste du geste et les autres méthodes de GestureTector.Gesturelistener Code> Jamais appelé. Cela a le potentiel de causer des problèmes inattendus dans votre application. La seule fois que vous devez retourner faux de ONTODOWN () code> est si vous voulez vraiment ignorer un geste entier. P>
[view].setLongClickable(true); This must be called first.
Merci Merci Marcos Votre réponse modifiée m'a beaucoup aidé à résoudre le problème.