GridView 行高

27

我有一个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 相接触(padding 似乎无法帮助很多,因为当图像高度相同时有太多的 padding)。

我知道有一种方法可以拉伸 ImageView 中的图像,使它们具有相同的高度,但是否可能保持图像不变,并以某种方式设置 行高

3个回答

28

通过您放置在表格行中的内容,您可以控制行高。由于您的单元格似乎有多个小部件,因此它们可能被包装在一个 LinearLayout 或类似的容器中。将您的 LinearLayouts 设置为某个特定高度,所有行的高度都将相同。

个人认为,如果您要在每个单元格上方和下方放置文本,则应根据需要调整图像大小。


1
我也发现了这一点——基本上,我没有看到你可以在布局中设置组件的宽度和高度,而不是wrap_component或fill_parent... - kozyr
27
无论我在LinearLayout高度上放置什么,都不能让GridView表现出不同的效果,这对我来说行不通。 - M Rajoy
LinearLayout 中的 layout_height 属性无法使用尺寸值来设置。 - lalitm
7
在LinearLayout中,不要设置weight和height的值,而应该设置minWidth和minHeight。 - mbmc
1
这并没有解决根本问题,即当计算行高度时,GridView 只考虑了最后一列。 - Nathan Adams
显示剩余4条评论

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。 - Eugene Chumak

5

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接