Android:GridView每行有不同的ColumnNum

Android:GridView每行有不同的ColumnNum,android,android-layout,gridview,android-custom-view,Android,Android Layout,Gridview,Android Custom View,问题 我搜索了这个GridView,每行有不同的ColumnNum,但这似乎是不可能的 然而,我可能不知道一些事情或误解 那么,我可以创建GirdView以获得如下示例所示的结果吗 如果没有,是否有任何方法来实现这一点 注:: 我了解如何在一个GridView中创建自定义GridView和不同样式的GridView布局 |-----------------| |-----------------| | | | | |

问题

我搜索了这个GridView,每行有不同的ColumnNum,但这似乎是不可能的

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

那么,我可以创建GirdView以获得如下示例所示的结果吗

如果没有,是否有任何方法来实现这一点

注::

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

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

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

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

我会选择ListView

因此,listview的行没有一种类型的视图,而是两种类型的视图:

第一个是每行类型两个元素 第二个是每行三个元素 适配器必须重写此方法:

当然,您必须调整您的ArrayAdapter类型,使其不是平坦的,即ArrayAdapter,而是更复杂的类型,即:

class MyTypeWrapper {
     class List<MyType> objects;
}
然后在以后的getView中,不同的行有不同的布局

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

您就需要它,因为您有一个类似ArrayAdapter的适配器作为数据源,对吗?是的!我有ArrayAdapter,那么不同行类型的listview可能需要一个答案。请看我的答案
...
@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;
    }
}
...