GridView行高

时间:2010-03-03 23:53:58

标签: android gridview height android-widget row-height

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

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

text3.1
ImageView(IMAGE3)
text4.1

等...

如果IMAGE1与IMAGE2的高度相同,一切都很好,但如果IMAGE1 比IMAGE2,text2.1将运行到text3.1(填充似乎没有多大帮助,因为当图像具有相同的高度时,它太多了。

我知道有一种方法可以在ImageView中拉伸图像,使它们的高度相同,但是可以按原样保留图像并以某种方式设置行高吗?

3 个答案:

答案 0 :(得分:28)

根据你放入它们的内容,你可以控制你的行高。由于您的单元格似乎有多个窗口小部件,因此它们可能包含在LinearLayout或其他内容中。将LinearLayouts设置为某个特定高度,行将全部为该高度。

我个人认为,如果要在每个单元格的基础上在每个图像的上方和下方放置文本,我认为您应该调整图像大小。

答案 1 :(得分:7)

在作为网格单元格的布局上使用drawable作为背景,并使用:

定义可绘制的布局
<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 :(得分:5)

这是一种替代解决方案,可预先测量项目并将每个单元格的高度设置为该行中的最大高度。

GridView rows overlapping: how to make row height fit the tallest item?