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.