2011-09-12 2 views
4

Très bien, cela me donne mal à la tête pendant plus d'une heure. J'ai plusieurs ScrollViews dans ViewFlipper. Je veux mettre en œuvre le geste gauche/droite de balayage tout en laissant défiler le scrollview. L'idée est assez simple - intercepter l'événement et le viewflipper, l'analyser et le transmettre aux enfants, peu importe ce qui s'est passé. De cette façon, je peux facilement détecter le balayage sans faire de dégâts avec les événements. En théorie, tout ce que j'ai à faire est de manipuler onTouch ou quelque chose comme ça et de retourner false, donc l'événement sera envoyé aux enfants. Mais l'Android est si intelligent qu'il n'enverra pas mes autres événements que ACTION_DOWN si je retourne faux, car il pense que je ne les veux pas.Android capturer tous les événements de mouvement et les envoyer aux enfants

Alors, comment puis-je capturer tous les événements de mouvement qui arrivent à ViewFlipper et ses enfants et les expédient toujours aux enfants? Je peux gérer la détection du coup moi-même.

Répondre

1

Android est très méchant sur ce genre de choses. Vous devez sous-classer et implémenter dispatchTouchEvent comme vous le souhaitez. Ou vous pouvez saisir un code android et le modifier. J'ai essayé d'utiliser onInterceptTouchEvent() mais je l'ai trouvé inutilisable.

Questions connexes