Android:每行GridView不同的ColumnNum

时间:2014-06-15 09:51:00

标签: android android-layout gridview android-custom-view

问题

我已经搜索了这个(每行的GridView不同的ColumnNum ),但似乎不可能。

然而,我可能不知道某些事情或误解。

那么,我可以创建GirdView以获得如下样本的结果吗?

如果没有,有没有办法实现这个目标?

注意:

我了解如何在一个GridView中创建自定义GridView和不同样式的Gridview布局

|-----------------|  |-----------------|
|                 |  |                 |
|                 |  |                 |
|-----------------|  |-----------------|

|----------|  |----------|  |----------|
|          |  |          |  |          |
|          |  |          |  |          |
|----------|  |----------|  |----------|

|-----------------|  |-----------------|
|                 |  |                 |
|                 |  |                 |
|-----------------|  |-----------------|

1 个答案:

答案 0 :(得分:0)

我选择了ListView。

因此,您的列表视图除了两行之外没有一种类型的视图:

  • 第一个是每行两个元素类型
  • 第二个是每行三个元素

您的适配器必须覆盖此方法:

https://developer.android.com/reference/android/widget/Adapter.html#getItemViewType(int)

当然你必须调整你的ArrayAdapter类型,使它不是" flat",即。 ArrayAdapter但有点复杂,即:

class MyTypeWrapper {
     class List<MyType> objects;
}

这样在getItemViewType中你可以这样做:

...
@Override
public int getItemViewType(int position) {
    MyTypeWrapper m = getItem(position)
    if (m.objects.size() == 2) {
        return TWO_ITEMS_PER_ROW_VIEW_TYPE;
    } else {
        return THREE_ITEMS_PER_ROW_VIEW_TYPE;
    }
}
...

然后在getView()中,您对不同的行有不同的布局。

我敢打赌这听起来有点困难,但事实并非如此! 只需google for&#34; android listview不同的行类型&#34;