2

Je résolvais un problème lié à la vue: un écouteur de clic qui n'est pas déclenché lorsqu'il est supposé le faire. Après une longue séance d'essais et d'erreurs, j'ai découvert qu'une vue parentale était désactivée, rejetant ainsi tous les événements pour ses enfants.Déterminez quel événement tactile consommé par View, le cas échéant

Existe-t-il un moyen, dans Android, de trouver exactement ce qu'il advient d'un événement tactile ou d'un clic lorsqu'il est injecté dans l'application? Comment a-t-il été dépêché, quelles vues ont été parcourues par lui, qui l'a ignoré (et pourquoi), qui l'a rejeté (et pourquoi) et finalement qui l'a consommé.

Idéalement, ce serait une sorte de vidage de bas niveau sur Logcat émis pour chaque clic dans l'application.

+0

Vous pouvez trouver des vues qui sont sous le point de contact du doigt, puis remplacer la méthode onTouchEvent() et leur définir des points d'arrêt pour voir si une vue a manipulé des événements au lieu de votre vue attendue. – wanglugao

Répondre

0

Comme vous pouvez le voir dans le similar post at the issue tracker Dianne Hackborn écrit:

Il n'y a actuellement aucun moyen de le faire.

Cela signifie qu'il n'existe pas d'API de ce type dans le framework.

Mais vous pouvez avoir une racine personnalisée ViewGroup et d'écouter pour chaque événement tactile (via onInterceptTouchEvent()) et dump the MotionEvent. Je crois que c'est la seule façon possible jusqu'à maintenant.