Aller au contenu

Quelques soucis avec une listeView contenant des TextView...


tsylvai

Recommended Posts

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é par tsylvai
Lien vers le commentaire
Partager sur d’autres sites

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 !

Lien vers le commentaire
Partager sur d’autres sites

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é par tsylvai
Lien vers le commentaire
Partager sur d’autres sites

Lol ! Alors indirectement "de rien" :-)

N'oublie pas de rajouter un "[Resolu]" ds le titre de ton premier message :-)

Lien vers le commentaire
Partager sur d’autres sites

Rejoignez la conversation

Vous pouvez poster maintenant et vous enregistrez plus tard. Si vous avez un compte, connectez-vous maintenant pour poster.

Invité
Unfortunately, your content contains terms that we do not allow. Please edit your content to remove the highlighted words below.
Répondre à ce sujet…

×   Collé en tant que texte enrichi.   Coller en tant que texte brut à la place

  Seulement 75 émoticônes maximum sont autorisées.

×   Votre lien a été automatiquement intégré.   Afficher plutôt comme un lien

×   Votre contenu précédent a été rétabli.   Vider l’éditeur

×   Vous ne pouvez pas directement coller des images. Envoyez-les depuis votre ordinateur ou insérez-les depuis une URL.

×
×
  • Créer...