GridView行高

koz*_*zyr 26 height android gridview row-height android-widget

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

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

text3.1
ImageView(IMAGE3)
text4.1
Run Code Online (Sandbox Code Playgroud)

等等....

如果IMAGE1是相同的高度IMAGE2,一切都很好,但如果IMAGE1是比IMAGE2,text2.1会碰上text3.1(填充似乎没有多大帮助,因为有太多的它,当图像的同样的高度).

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

Com*_*are 28

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

就个人而言,如果您要在每个单元格的基础上在每个图像的上方和下方显示文本,我认为您应该调整图像大小.

  • 这对我来说不起作用,无论我放在linearlayout高度上,GridView的行为都是一样的...... (27认同)
  • 在`LinearLayout`中,不要将值设置为`wight`和`height`,而是设置为`minWidth`和`minHeight`. (7认同)

Clo*_*ker 7

在作为网格单元格的布局上使用drawable作为背景,并使用以下内容定义可绘制的:

<size android:height="<some height>" />
Run Code Online (Sandbox Code Playgroud)

例如:

<?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>
Run Code Online (Sandbox Code Playgroud)

  • 您只需将根视图的layout_height设置为60dip即可. (2认同)

Cha*_*ase 5

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

GridView行重叠:如何使行高适合最高的项目?