2017-09-27 10 views
0

Comment puis-je détecter un geste dans mon activité, même avec beaucoup de choses (Layouts, Images, RecyclerViews, etc.). J'ai l'intention de créer un geste qui peut être fait à tout moment. Est-ce possible?Détecter le mouvement sur toute la surface

J'ai essayé ceci:

findViewById(android.R.id.content).setOnTouchListener(new View.OnTouchListener() { 
      @Override 
      public boolean onTouch(View v, MotionEvent event) { 
       Log.e("GESTURE", "GESTURE"); 
       return false; 
      } 
     }); 

Mais il ne fonctionne pas. Je pense que c'est parce que les autres vues interceptent l'événement.

Idk est-il possible de détecter le geste au-dessus de l'activité, comme dans la fenêtre.

Merci!

Répondre

1

Vous pouvez, mais c'est un peu difficile. Lire sur la manipulation tactile et en particulier onInterceptTouchEvent, qui peut être utilisé sur un parent pour intercepter les touches allant aux enfants.

Vous devez implémenter cette méthode dans une vue racine (personnalisée), puis y ajouter votre magie gestuelle.

Quelques précieuses informations ici: Android: Difference between onInterceptTouchEvent and dispatchTouchEvent?

+0

Il a travaillé. Je viens de remplacer la méthode "dispatchTouchEvent" dans mon activité. Je vous remercie! –