2010-03-03 3 views
26

J'ai un GridView qui affiche des images, qui, malheureusement, de tailles différentes. Ils sont représentés entre deux lignes de texte:GridView rangée hauteur

text1.1    text1.2 
ImageView(IMAGE1)  ImageView(IMAGE2) 
text2.1    text2.2 

text3.1 
ImageView(IMAGE3) 
text4.1 

etc ....

Si IMAGE1 est la même hauteur que IMAGE2, tout va bien, mais si IMAGE1 est plus que IMAGE2, texte2 .1 fonctionnera dans text3.1 (le remplissage ne semble pas aider beaucoup, car il y en a trop quand les images sont de la même hauteur).

Je sais qu'il existe un moyen d'étirer les images dans ImageView afin qu'elles aient la même hauteur, mais est-il possible de conserver les images telles quelles et de définir le hauteur de ligne d'une manière ou d'une autre?

Répondre

28

Vous contrôlez la hauteur de vos rangs, grâce à ce que vous y mettez. Puisque vos cellules semblent avoir plus d'un widget, elles sont probablement enveloppées dans un LinearLayout ou quelque chose. Définissez votre LinearLayouts pour avoir une hauteur spécifique, et les lignes seront toutes à cette hauteur. Personnellement, je pense que vous devriez redimensionner vos images si vous voulez avoir du texte au-dessus et en dessous de chaque image par cellule.

+1

j'ai découvert que comme bien - - fondamentalement, je n'ai pas vu que vous pouvez définir la largeur et la hauteur pour un composant dans la mise en page au lieu de wrap_component ou fill_parent .... – kozyr

+27

cela ne fonctionne pas pour moi, peu importe ce que je mets sur la hauteur linearlayout, le GridView se comporte de la même manière ... –

+0

layout_height pour LinearLayout en termes de valeurs de dimension ne fonctionne pas. – lalitm

7

Utilisez drawable comme arrière-plan sur la mise en page qui est votre cellule de la grille et de définir qui drawable avec:

<size android:height="<some height>" /> 

Par exemple:

<?xml version="1.0" encoding="utf-8"?> 
<shape xmlns:android="http://schemas.android.com/apk/res/android" 
    android:shape="rectangle"> 
<solid android:color="#ffffff"/> 
<size android:height="60dip" /> 
</shape> 
+2

Vous pouvez simplement définir layout_height de la vue racine sur 60dip. –

Questions connexes