Android: 设置GridView中1行与其他行不同的高度

Android: set the height of 1 row different from others in GridView

找了很久,如何设置只有1行的高度和其他的不一样:

1 2 3
- - -
4 5 6
- - -
7 8 9

我有 9 件商品: 1、2 的高度为 50dp。所有其他项目的高度均为 30 dp。

我找到了将第一行设为 50dp 的解决方案,但这样一来,第 3 项也变成了 50dp。

我能够在 gridview 适配器中找到“3”,但是当我将其高度 LayoutParam 更改为 30dp 时,垂直间距会发生变化。我发现垂直间距总是与最短的元素对齐(我不想要)。

我该怎么办?

将您的 gridview 项放入其他布局中,例如 Linearlayout,并在您找到第 3 个项时将其放入适配器中,只需更改该自定义项的 layout_bounds。

<LinearLayout

    <CustomItemLayout>

</LinearLayout>

并在 gridviewadapter 内部

if(position == 3){
    LayoutParams newParams = ...;
    holder.customview.setlayoutparam();
}