2012-09-27 5 views
1

Mon application Android est essentiellement une vue de surface implémentant l'interface "SurfaceHolder.Callback". J'affiche un graphique de données 2D en plus ou moins temps réel. En outre, j'ai ajouté une vue de texte pour afficher quelques données supplémentaires superposées sur la vue de surface.Passer un geste à un autre gestionnaire sous Android

Mon problème actuel est que la vue de surface gère une variété de gestes et de touches, mais la vue texte semble intercepter les touches.

Comment puis-je transmettre des événements de la vue de texte à la vue de surface sous-jacente (littéralement, dans la mise en page relative) pour la gestion?

Merci,
R.

+0

Cela peut être une copie d'une autre question que j'ai trouvé, qui était en fait sur la façon d'arrêter le geste d'être passé - je pense. De toute façon, j'ai du mal à le trouver maintenant, mais la réponse semble impliquer les vues de combinaison dans la hiérarchie et au moins une implémentation de setOnTouchListener(). J'y travaille.... – Rich

Répondre

0

J'espérais ne pas avoir à le faire (répondre à ma propre question), mais voici ce que je pense que je sais de quelques messages sur SO:

Dans un Android Relative Layout, la vue "sur le dessus" obtient l'événement en premier. Dans mon cas, la vue de texte en haut de la vue de surface n'est pas censée faire quoi que ce soit, il était donc nécessaire de passer tous les événements "en bas" de la pile. J'ai accompli cela avec ceci:

textView.setOnTouchListener (new View.OnTouchListener() 
{ 
    @Override 
    public boolean onTouch (View v, MotionEvent event) 
    { 
     return false; 
    } 
}); 

La partie ennuyeuse à ce sujet (à mon avis) est la nature trompeuse du texte d'aide Android sur la question qui dit:

« retour - Vrai si l'auditeur a consommé l'événement, faux sinon. "

Le ton de ceci me semble (encore une fois, mon opinion) avoir Cause et Effet inversés. Je suppose que c'est tapageur, mais le texte devrait probablement dire quelque chose comme: "Retournez TRUE pour indiquer que l'événement DEVRAIT ÊTRE CONSOMMÉ (par le système d'exploitation, il semblerait), faux sinon."

Questions connexes