J'ai été quelques jours à essayer de résoudre cette chose mais je ne peux pas comprendre. Le problème est une activité simple, avec une mise en page simple, ScrollView -> linearlayout -> et beaucoup de boutons à l'intérieur de la mise en page (dans le contenu du défilement). Tout fonctionne bien, mais une chose délicate. Lorsque je clique sur un bouton, disons en haut du contenu du défilement et faites défiler immédiatement jusqu'au bas du contenu et cliquez sur un autre bouton, rien ne se passe jusqu'à ce que je clique sur une seconde fois et que tout se passe à nouveau à nouveau. Cela peut être reproduit à tout moment et son code indépendant (j'ai essayé plus de 20 scénarios). Je n'ai pas encore beaucoup d'expérience à Android, mais on dirait que l'auditeur de défilement arrête l'auditeur ONCLICK ou quelque chose comme ça. Toute aide pour cela serait très appréciée. Merci d'avance. P>
PD. Si je fais de manière programmable un Scrollto () code>, au lieu de défilement manuel avec mes doigts, tout fonctionne bien et le clic répond au premier contact. C'est simplement accablant moi. P>
4 Réponses :
Tout se comporte normalement. P>
Lorsque vous commencez à défiler, le ScrollView code> réclamera des événements tactiles jusqu'à ce que vous arrêtez de toucher l'écran pendant un peu. Dans Android 2.2, vous saurez lorsque le défilement est jugé complet, car la barre de défilement à droite disparaîtra. P>
Ok, je comprends ce que tu veux dire. Donc, j'attémise qu'il n'y a pas d'option pour réduire le temps pendant que ScrollView slamingvie-touche des événements tactiles une fois qu'il cesse de faire défiler (chez leeat visuellement) ...? Je sais que ce n'est pas beaucoup de temps, peut-être 0,5 seconde mais le seuil anoyaling. S'il y avait une façon, ce serait génial. Quoi qu'il en soit, merci beaucoup pour votre réponse.
@esenian: "Alors j'approprie, il n'y a pas d'option pour réduire le temps pendant que ScrollView slamingviette est en train de remplacer les événements tactiles une fois qu'il cesse de faire défiler (chez leeat visuellement) ...?" - Pas que je sache. Gardez à l'esprit qu'un ScrollView code> d'une liste des touches code> n'est pas une technique que vous verrez de nombreuses applications de production utilisez.
Bien sûr, vous avez raison et encore merci, je pensais que c'était l'approche de la nouvelle application YouTube de Google. Il semble avoir une horizontalscrollview renseignée avec des boutons simulant des "onglets de défilement". J'ai fait travailler et j'ai l'air à peu près la même chose, mais le problème avec le décalage de clic était ennuyeux. Maintenant, je vois que l'application elle-même a également le même comportement laggy avec cela afin que mon approche soit assez proche. C'est bien à mon avis. Je vais essayer de voir le code ScrollView pour voir si je peux remplacer quels contrôles cette fois-ci. Vraiment merci homme.
J'ai le même problème. Je ne suis pas d'accord sur le fait que c'est une émission de barre de défilement. Si vous désactivez la décoloration, la même chose se passe.
essayé plusieurs approches dans Themes.xml: p> mais rien n'a aidé.
Il semble que c'est une chose système avec Scrollviews.
Cela pourrait aider à voir ce qui se passe: p> mais que (malheureusement) n'aide pas à surmonter le problème - mais plutôt l'expliquer. P> Remarque: cela ne se produit que si vous utilisez ScrollView. ListView n'a pas ce problème. P> Quelqu'un a une autre idée? P> p>
Peut-être que vous avez trouvé une solution pour cela? On dirait qu'elle est liée à l'accélération de défilement (une action de balayage plus difficile entraînera un retard plus long, même si le défilement s'arrête immédiatement au sommet / bas), mais je n'ai aucune idée de la solution de contournement.
J'ai été en mesure de résoudre ce problème en remplaçant Onscrollchanged, puis envoyez la vision de ScrollView un motionEvent via Ontouchevent lorsque les limites sont jointes pour simuler une touche utilisateur. P>
C'est la programmation la plus sheureuse et la plus sale que je puisse imaginer, mais cela fonctionne correctement dans ma demande. Cette application est pour les téléphones exécutant 2.2 uniquement et ce bogue devait être corrigé d'une manière ou d'une autre. P>
Si quelqu'un a une meilleure solution, merci de me le faire savoir. P>
Edit: Ce problème n'est que dans 2.2 BTW, ils l'ont résolu en 2.3, et ce n'était pas un problème dans 2.1. P>
J'ai une situation comme celle-ci. J'ai une vue d'envoi, il se comporte simplement normalement. Lorsque je fais pivoter le téléphone portable à horizontal et faire pivoter le dos, certains éléments d'un groupe de l'expandaBlistView ne répondront pas à un événement de clic. Sauf si je fais défiler la liste de la liste ou cliquez sur l'élément de groupe de ces éléments, l'événement envoiera les éléments que j'ai cliqué précédemment et effectuera correctement les codes de clic d'auditeur. P>
Cela s'est produit à la fois dans Android 2.3 et 4.0 ... P>
@esenian: créer un exemple de projet qui démontre le problème. Téléchargez ce projet quelque part (par exemple, en tant que fichier zip). Publiez un lien vers cela ici, dans un commentaire préfixé avec @commonsware, je sais donc que vous l'avez posté.
@Commonsware J'ai téléchargé un projet ici ici megaupload.com/?d=U69RRBAW vraiment simple , mise en page, aucune action, appuyez simplement sur le bouton 1, défilez-vous et appuyez sur la touche 14. Vous verrez ce que je veux dire (pas de cadre orange sur le bouton au deuxième clic). Merci beaucoup pour votre temps.
@esenian: Megaupload dit que le fichier est indisponible. Publier peut-être votre classe d'activité Java Source et le fichier XML de mise en page (s'il y en a un) sera suffisant, soit en modifiant votre question, soit peut-être en utilisant Gist.Github.com ou des services" Pastebin "similaires.
@Commonsware Désolé pour le dérangement. J'ai utilisé github gist.github.com/656821 pour télécharger l'activité principale et la mise en page. Comme j'ai dit un code très simple sans fonctionnalité, mais je pense que cela montre ce que je veux dire. Merci beaucoup.
Comment avez-vous résolu votre problème?