J'ai un ListView assez complexe, avec des hauteurs d'éléments de liste variables. Dans certaines conditions, j'ai besoin d'afficher une vue supplémentaire dans un élément de liste, qui est caché par défaut ( View.GONE
). En l'activant ( View.VISIBLE
), l'élément de la liste grandit en hauteur (ou du moins il est censé le faire).
Le problème : Bien que je déclare la disposition Root de l'élément comme étant wrap_content
et chaque composant de l'article à fill_parent
En effet, la vue que je cache/affiche et qui est censée modifier la hauteur de l'élément est simplement coupée en bas au lieu que son parent (la mise en page de l'élément) augmente en hauteur pour l'afficher entièrement.
Y a-t-il des problèmes liés aux ListViews, à la disposition des éléments et à la hauteur des éléments que j'ai pu manquer ?
Quelques observations supplémentaires :
À des fins de test, j'ai maintenant réduit la disposition des éléments de la liste pour qu'elle ne contienne que le Root LinearLayout et un ImageView. Lorsque je règle la hauteur de la LinearLayout à, par exemple, 1,5 cm. 200dip
et l'ImageView à fill_parent
je me serais attendu à ce que l'ImageView s'agrandisse jusqu'à ce qu'elle atteigne la limite de l'écran. 200dip
limite fixée par son parent.
Cependant, l'image ne sera jamais plus haute que sa ressource bitmap (comme si je l'avais réglé sur wrap_content
) et l'ensemble de l'élément de la liste aura la même hauteur (c'est-à-dire comme si je l'avais également réglé sur wrap_content).
Toutefois, si je règle la hauteur de l'image sur, par exemple, la valeur suivante 200dip
l'élément de la liste augmentera en hauteur, de même que la mise en page de l'élément.
En d'autres termes, le layout_height
de la mise en page de l'élément de la liste est complètement ignorée, de même que toute valeur de hauteur sur ImageView autre qu'une valeur de pixel codée en dur.
2 votes
HI.. Matthias S'il vous plaît fournissez moi un exemple de travail. Je suis également confronté au même problème, mais je ne suis pas clair sur la façon dont vous avez résolu le problème.