我有一个显示图像的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中拉伸图像,使它们的高度相同,但是可以按原样保留图像并以某种方式设置行高吗?
答案 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?