tsylvai Posté(e) 29 avril 2012 Share Posté(e) 29 avril 2012 (modifié) Tout d'abord salut à tous (c'est mon premier message alors autant bien commencer). Voilà je développe depuis quelques mois sur android et je suis confronté au problème suivant : je fait une sorte de glossaire , pour celà j'ai une Liste View tout simple list_view.xml <LinearLayout ...... . . . <ListView android:id="@id/liste" android:background="@android:color/white" android:layout_width="fill_parent" android:layout_height="fill_parent" > </ListView> . . . </LinearLayout> dans cette liste view je place des éléments qui contiennent pour simplifier item.xml <TextView android:id="@id/texte" android:layout_width="fill_parent" android:layout_height="0dip" android:textColor="@color/Gris32" android:textSize="14dp" android:padding="8dp" android:singleLine="false" android:text="@string/lorem" android:layout_weight="1" /> L'adapter que j'ai fait utilise le fait de stocker dans le Tag la convertview pour minimiser les traitements if (convertView == null) { wrapper = new ViewWrapper(); convertView = (LinearLayout) mInflater.inflate (R.layout.item_glossaire, parent, false); wrapper.texte=(TextView)convertView.findViewById(R.id.texte); convertView.setTag(wrapper); } else { wrapper=(ViewWrapper)convertView.getTag(); } Ensuite je remplis cette liste avec des valeurs , et c'est là que le souci apparait , il y a des valeurs qui nécessittent une ligne , d'autres 2 d'autres 3 etc... en gros j'affiche du texte et les textviews ne s'adaptent pas à la hauteur du texte que je mets dedans , c'est surtout visible si par exemple dans ma liste un élément n'est que sur une ligne , alors à force de monter et descendre toutes ls lignes ne font plus qu'il ligne et le texte sera tronqué. J'ai essayé de faire un invalidate() sur mon textview mais le problème persiste. je n'imagine pas que ce souci soit tout simple pour quelqu'un qui connait mais alors là je sèche complètement. PEtite précision j'ai réussi à résoudre le pb si le textview qui contient le texte à hauteur variable est le dernier champ de mon item (ce que je mets dans la liste view) tout simplement en le mettant en layout_height="fill_parent" mais si ce n'est pas le dernier de l'item cela ne fonctionne pas. J'espere que quelqu'un déjà confronté à ce souci pourra m'aider , merci d'avance. Modifié 29 avril 2012 par tsylvai Citer Lien vers le commentaire Partager sur d’autres sites More sharing options...
Invité Posté(e) 30 avril 2012 Share Posté(e) 30 avril 2012 Ds ton TextView : android:layout_height="wrap_content" et vire le layout_weight ! La listeView devrait gérer le reste seule ! Dis nous ce que ca donne ! Citer Lien vers le commentaire Partager sur d’autres sites More sharing options...
tsylvai Posté(e) 1 mai 2012 Auteur Share Posté(e) 1 mai 2012 (modifié) Tout d'abord merci d'avoir répondu , et du coup je vais partager, en fait comme ce que vous m'avez indiqué ne fonctionnait pas , j'ai refait un petit projet avec juste une listview pour pouvoir la poster sur le forum pour servir d'exemple , et en faisant sa je me suis apercu que j'avais juste simplifié un truc dans mon explication, en fait j'utilise une textview personnalisée (pour pouvoir afficher une autre fonte que la fonte standard) et c'était la qu'il y avait un problème , j'avais oublié d'implémenter tous les constructeurs , du coup quand j'utilisait du gras par exemple il ne tenait pas compte de l'agrandissement de la taille de la police pour recalculer la hauteur, j'ai implémenté tous les constructeurs du textview personnel et zou tout refonctionne , donc indirectement merci ... ;-)) A Une prochaine aventure... Modifié 1 mai 2012 par tsylvai Citer Lien vers le commentaire Partager sur d’autres sites More sharing options...
Invité Posté(e) 7 mai 2012 Share Posté(e) 7 mai 2012 Lol ! Alors indirectement "de rien" :-) N'oublie pas de rajouter un "[Resolu]" ds le titre de ton premier message :-) Citer Lien vers le commentaire Partager sur d’autres sites More sharing options...
Recommended Posts
Rejoignez la conversation
Vous pouvez poster maintenant et vous enregistrez plus tard. Si vous avez un compte, connectez-vous maintenant pour poster.