Pas sûr qu'il n'y ait pas de meilleure approche, mais vous pouvez créer une vue personnalisée, mettez-la comme top-top dans votre mise en page (faites-en la largeur et la hauteur pour qu'elle couvre des ares entiers). Le travail de vue seule consisterait à gérer les entrées et à "consommer" tous les événements de mouvement que vous souhaitez filtrer (c'est-à-dire ceux qui ne proviennent pas du stylet) en les marquant comme traités et ignorer tous les autres. manipulation régulière par d'autres vues.
EDIT
La mise en œuvre la plus simple serait de faire votre point de vue étendre quelque chose qui existe, mais simple, comme. (FrameLayout
ou Space
(de sorte que vous n'avez pas besoin de déranger tous les trucs de mesure) et remplacer onTouchEvent()
pour filtrer toutes les entrées. Si c'est quelque chose que vous ne voulez pas passer, "consommez" ici en renvoyant true
, sinon renvoyez false
afin qu'il se propage. Et important de rendre votre vue de dessus le plus de superposer tous les autres, à savoir
FrameLayout
YourCustomView
PreviousLayout
Ce [lien] (http://lapasa.net/knowledge/?p=490) peut vous aider. – huk
@huk Je peux distinguer entre le toucher et le stylet. Ce que je veux faire est de ne permettre que le stylet. – machinery