Aller au contenu

Effet indésirable de Scroll sur une GridView


Lineo

Recommended Posts

Bonjour,

Depuis quelques temps je travail sur le développement d'une application android, et celle ci arrive à sont terme, sur le principe d'un sokoban mon jeu contient une gridview avec mes decors et je déplace le personnage par des swype sur l'écran (jusque là tout fonctionne très bien). Le seul problème est que sur Samsung Galaxy S, les déplacements se font très bien, idem sur Sony Ericson Xperia Ray, mais sur le Samsung Galaxy S2 le swype sur l'écran (bas ou haut) fait se deplacer la gridview en haut et en bas (ainsi que le personnage qui interagis dans la gridview).

Malgré toutes mes tentatives pour supprimer l'effet scroll de ma gridview (dans le XML, puis à l'aide de certaines fonction du type gridview.setHorizontalScrollBarEnabled(boolean bool) sans succés.

J'essaye de réfléchir à un moyen de "brider" cet effet dans ma fonction onTouch(View v, MotionEvent event), mais sans vraiment savoir comment faire.

En tous cas si vous avez des idées je suis preneur :-).

Lineo.

Lien vers le commentaire
Partager sur d’autres sites

J'apporte une petite précision que j'ai remarqué.

Dans le xml de mon activity, je n'ai que ma gridview et elle se déplace quand meme dans un layout parent que je n'ai pas créer (se perdrait-elle dans l'infini? ou est ce qu'il y a un parent automatiquement à cette View ?)

Lien vers le commentaire
Partager sur d’autres sites

Effectivement, il y a forcément un layout parent à tout layout d'Activity; il s'agit normalement d'un FrameLayout (qui ne devrait pas pour autant faire scroller son contenu...)

Pour voir quelle est la structure réelle de ton IHM, tu peux utiliser l'outil hierarchyviewer du SDK, qui affiche en temps réel la hiérarchie de composants graphiques d'une Activity (cf doc). Peux être pourras tu ainsi voir ce qui fait scroller ta GridView ?

Lien vers le commentaire
Partager sur d’autres sites

Oui j'ai pus remarquer que mes ImageViews sont dans ma GridView (normal) que ma GridView se trouve dans un FrameLayout id/content (que je n'ai pas créé et dont je ne trouve pas l'id dans mon fichier R) et que tous ça est imbriqué dans le PhoneWindow$DecorView.

Mais je ne vois toujours pas comment faire en sorte de pouvoir resize ce FrameLayout ou de bloquer le mouvement de ma GridView (sans le OnTouchListener lorsque je fais scroller ma gridview elle revient automatiquement au centre alors qu'avec le onTouch elle ne se replace pas...)

Lien vers le commentaire
Partager sur d’autres sites

  • 2 weeks later...

Bon merci, pour l'aide apporté...

Pas de solution à afficher, la gridview ne se déplace pas sur galaxy s ni sur xperia ray mais bouge sur galaxy ace et s2, ce n'est pas un problème de version de micrologiciel, dans le code je ne voit pas ce que ca peut être aussi.

A voir il n'y pas de quoi résoudre ce bug..

Lien vers le commentaire
Partager sur d’autres sites

Archivé

Ce sujet est désormais archivé et ne peut plus recevoir de nouvelles réponses.

×
×
  • Créer...