2010-03-03 2 views
26

Ho un GridView che visualizza le immagini, che sono, purtroppo, di dimensioni diverse. Essi sono mostrati tra due righe di testo:GridView row height

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

text3.1 
ImageView(IMAGE3) 
text4.1 

ecc ....

Se IMAGE1 è la stessa altezza IMAGE2, tutto va bene, ma se IMAGE1 è più di IMAGE2, text2 .1 verrà eseguito in text3.1 (il padding non sembra essere di aiuto, dato che ce n'è troppa quando le immagini hanno la stessa altezza).

So che c'è un modo per allungare le immagini in ImageView in modo che siano della stessa altezza, ma è possibile mantenere le immagini così come sono e impostare l'altezza della riga in qualche modo?

risposta

28

Hai il controllo sulle altezze delle file, in virtù di ciò che hai inserito. Poiché le tue celle sembrano avere più di un widget, sono presumibilmente avvolti in un LinearLayout o qualcosa del genere. Imposta il tuo LinearLayouts in modo da avere un'altezza specifica, e le file saranno tutte quell'altezza.

Personalmente, penso che dovresti ridimensionare le tue immagini se vuoi avere il testo sopra e sotto ogni immagine su una base per cella.

+1

ho scoperto che fuori pure - - In sostanza, non ho visto che è possibile impostare la larghezza e l'altezza per un componente nel layout invece di wrap_component o fill_parent .... – kozyr

+27

questo non funziona per me, non importa cosa metto sull'altezza linearlayout che GridView si comporta allo stesso modo ... –

+0

layout_height per LinearLayout in termini di valori di quota non funziona. – lalitm

7

Usa drawable come sfondo sul layout che è la tua cella della griglia e definire che disegnabile con:

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

Ad esempio:

<?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

È possibile impostare semplicemente layout_height della vista radice su 60dip. –