1

Je jouais avec GestureDetector et notez que la méthode onFling n'est jamais appelée lors de l'exécution dans l'émulateur sur OSX.onFling n'étant pas appelé sur OSX Emulator?

Je pourrais le faire fonctionner sous windows, mais pas sur osx.

J'ai utilisé le code excellent à ce poste: Fling gesture detection on grid layout

Voici le code:

protected void onCreate(Bundle savedInstanceState) { 
    // TODO Auto-generated method stub 
    super.onCreate(savedInstanceState); 

    gestureDetector = new GestureDetector(new MyGestureDetector()); 

} 



public boolean onTouch(View v, MotionEvent event) { 
    // TODO Auto-generated method stub 
    gestureDetector.onTouchEvent(event); 
    return false; 
} 

protected void addFlingSupportToView(int view) { 
    // TODO Auto-generated method stub 

    View v = (View) findViewById(view); 
    v.setOnTouchListener(this); 

} 

class MyGestureDetector extends SimpleOnGestureListener { 

    @Override 
    public boolean onFling(MotionEvent e1, MotionEvent e2, float velocityX, 
      float velocityY) { 
     try { 
      if (Math.abs(e1.getY() - e2.getY()) > SWIPE_MAX_OFF_PATH) 
       return false; 
      // right to left swipe 
      if (e1.getX() - e2.getX() > SWIPE_MIN_DISTANCE 
        && Math.abs(velocityX) > SWIPE_THRESHOLD_VELOCITY) { 

      } else if (e2.getX() - e1.getX() > SWIPE_MIN_DISTANCE 
        && Math.abs(velocityX) > SWIPE_THRESHOLD_VELOCITY) { 

       // Log.i("vampidroid", CryptDetails.this.toString()); 


       finish(); 

      } 
     } catch (Exception e) { 
      // nothing 

     } 
     return false; 
    } 
} 

Le problème est que même si la OnTouch est appelée, l'événement OnFling est jamais appelé! Je jouais avec ce code sur windows et ça marchait bien. Quand j'ai changé pour osx et que je l'ai essayé, ça n'a pas marché.

Sur l'appareil, le code fonctionne comme prévu.

Avez-vous une idée de ce que cela pourrait être? Est-ce lié uniquement à osx?

Je n'ai rien trouvé ici sur le Net, donc je pense que c'est peut-être seulement avec moi ou personne n'a vérifié cela.

Merci d'avance.

Répondre

0

J'ai récemment rencontré exactement le même problème. Malheureusement et heureusement, je n'ai reçu aucune aide de ce poste, mais j'ai résolu le problème plus tard avec un peu de chance. La réponse est simple: NE PAS UTILISER VOTRE TRACKPAD POUR FAIRE FLING dans votre émulateur parce que ça ne marchera pas. Il suffit de brancher une souris externe et cela devrait fonctionner correctement.

p.s. Dans mon cas, je testais avec un macbookpro.

EDIT: il s'avère qu'il n'avait rien à voir avec interne ou externe .. désolé de la confusion. le vrai coupable ici, au moins pour moi, c'est parce que j'ai activé «tab to click» dans les préférences du système et j'ai essayé de le faire glisser deux fois. Le "appuyer pour cliquer" par défaut fonctionne parfaitement sans aucun problème.

+0

Cela me semble bizarre car l'entrée est traitée de la même manière. – Rob

Questions connexes