J'ai un écran rempli de boutons, mais je veux que la méthode d'AOUTUNO utilise toutes les coordonnées de l'écran. J'ai d'abord essayé d'utiliser un relativelayout avec un entouacement, mais n'a jamais réussi à le faire "Connecter" avec l'auditeur (c'est-à-dire que rien ne s'est passé lorsque l'écran a été touché), j'ai également essayé de mettre une vue d'écran en haut de l'écran, puis de faire cette vue invisible. . p>
Cette dernière méthode a donné des réponses correctes à OnClicks, mais je n'ai jamais réussi à le rendre invisible. P>
S'il s'agit de la meilleure solution, que je doute fortement, comment puis-je faire l'image de l'image totalement invisible, sans perdre son aouflistener (j'ai expérimenté un fond blanc et une setalpha (0)). P>
Puis-je faire en sorte que l'Ontouchlistener réagir à l'écran entier, en utilisant des coordonnées globales, tandis que l'écran affiche (et modifiant) plusieurs boutons (de préférence sans l'invisible imageView)? P>
Si vous ne comprenez pas ce que je demande, n'hésitez pas à vous plaindre de cela. Je vais essayer de combler les lacunes si nécessaire. P>
J'ai maintenant réussi à résoudre le problème à l'aide de la méthode ONTTouch régulière. J'ai rencontré plusieurs problèmes en faisant à la fois Action_Down et Action_Move Activez les boutons, mais je l'ai enfin fini. Pour les autres personnes lisant ceci: OninterceptTouchevent pourrait éventuellement être utilisé (mais je n'ai jamais compris comment obtenir les coordonnées de l'écran au lieu des coordonnées de vue). P>
4 Réponses :
Avez-vous essayé Onterceptouchevent a> sur la mise en page? P>
Dsouza j'ai essayé, mais n'était pas satisfait. J'ai maintenant réussi à résoudre le problème en utilisant la méthode d'Aoudouch régulière. J'ai rencontré plusieurs problèmes en faisant à la fois Action_Down et Action_Move Activez les boutons, mais je l'ai enfin fini. Pour d'autres personnes, lisez ceci: Oninterceptouchevent pourrait éventuellement être utilisé (mais je n'ai jamais compris comment obtenir les coordonnées de l'écran au lieu des coordonnées de vue).
Désolé si je me trompe, mais je crois que je venais d'avoir un problème similaire. Je voulais un écran de titre qui affiche une image et sur les mots d'image qui disent "cliquez pour continuer" ou quelque chose de similaire. J'ai gêné un peu et j'ai constaté que vous pouvez faire une mise en page cliquable.
private FrameLayout fl; ... fl = (FrameLayout)findViewById(R.id.titlescreenframe); fl.setOnClickListener(this);
Si votre cible est plus récente que 1.6, vous pouvez utiliser Android: ONCLICK = "MODENAME" directement au lieu de paramétrer la mise au point et assigner OnCliquez sur le code.
J'ai utilisé Dispatchtouchevent A > Pour un problème similaire. Vous pouvez considérer cela un remplacement d'une liste déroulante pour Renvoie true si vous gérez l'événement, sinon, assurez-vous d'appeler comme pour obtenir des coordonnées d'écran - appelez simplement le Ontouchevent code>, sauf qu'il vous envoie toujours un événement, même s'il est sur une vue existante. P>
super.dispatchtouchevent () code> et renvoyer son résultat. P>
getrawx () code> et
getrawy () code> plutôt que
getx () code> et
et
et
gety () code>. Ce sont les coordonnées d'écran absolu, y compris la barre d'action et tous. Si vous souhaitez transversir ceux-ci avec des vues, GetLocationVoiscreen est probablement la solution la plus facile. P>
Touch Event Return est d'abord sur les vues d'enfants. Et si vous définissez OnClick ou Aoudouch auditeur pour eux, la vue Parnt (par exemple, le fragment) ne recevra aucun auditeur tactile. Donc, si vous voulez définir un auditeur de balayage pour fragmenter dans cette situation, vous devez la mettre en œuvre dans une nouvelle classe:
View view=inflater.inflate(R.layout.fragment_main_list, container, false); SwipeListenerFragment tdView=(SwipeListenerFragment) view; tdView.registerToSwipeEvents(this); and then Implement SwipeListenerFragment.onSwipeEventDetected in it: @Override public void swipeLeftDetected() { Toast.makeText(getActivity(), "left", Toast.LENGTH_SHORT).show(); } @Override public void swipeRightDetected() { Toast.makeText(getActivity(), "right", Toast.LENGTH_SHORT).show(); }