2010-03-03 95 views
26

我有一个显示图像的GridView,不幸的是它有不同的大小。它们显示在文本行两者之间:GridView行高

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

text3.1 
ImageView(IMAGE3) 
text4.1 

等....

如果IMAGE1是相同的高度IMAGE2,一切都很好,但如果IMAGE1是比IMAGE2,文本2 .1会碰到text3.1(填充似乎没有什么帮助,因为当图像高度相同时,填充太多了)。

我知道有一种方法来拉伸图像的ImageView的,使他们的高度相同,但有可能保持图像原样,并设置行高度不知何故?

回答

28

凭借您放入的行列,您可以控制行高。由于您的单元格似乎有多个小部件,因此它们大概会包含在LinearLayout之内。将您的LinearLayouts设置为某个特定的高度,并且行将全部为该高度。

就个人而言,我认为如果您要在每个单元格的基础上每个图像的上下都有文字,我认为您应该调整图像大小。

+1

我发现了这一点,以及 - - 基本上,我没有看到你可以在布局中设置组件的宽度和高度,而不是wrap_component或fill_parent .... – kozyr

+27

这不适用于我,不管我把线性布局高度放在什么位置,GridView的行为都是一样的... –

+0

LinearLayout的维度值的layout_height不起作用。 'LinearLayout'中的 – lalitm

7

使用可绘制作为布局的背景下,为您的网格单元,并定义绘制有:

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

例如:

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

您可以简单地将根视图的layout_height设置为60dip。 –