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