0

我有一些视图必须放在 4 x 6 网格中。每个视图应具有相同的宽度 w 和相同的高度 h 并填满屏幕。我想要的是使用 GridLayout 或 GridView 来绘制这些。

我知道我可以在 GridView 中使用 stretchMode = "columnWidth" ,它为其每个子级设置相等的宽度。我还希望它设置相等的高度并垂直填充屏幕。

我可以通过使用任何 GridView 或如果不可能,然后使用 GridLayout 来实现这一点吗?在切换到 LinearLayouts 并使用权重之前,我正在寻找 GridView,因为我有自定义视图作为网格项,我喜欢使用适配器而不是为每个元素编码。

4

2 回答 2

1

您仍然可以使用Adapterswith LinearLayoutsor TableLayout,您只需以编程方式添加视图并自己调用 getView() 方法。 GridView更适用于动态数量的项目并处理自己的滚动。

这可以在你的 onCreateView() 或其他任何东西中使用类似的东西来完成:

mAdapter = new FooAdapter();
mList = (LinearLayout) v.findViewById(R.id.list);
for(int i = 0; i< mAdapter.getCount(); i++){
    View child = mAdapter.getView(i, null, mList);
    mList.addView(child);
}

如果您可能只是更改数据,则将旧视图作为 convertViews 传递可能会加快速度。

于 2012-06-06T21:43:32.260 回答
0

我做了一个扩展线性布局的自定义布局。我发现对于我的情况,这是一种更好的方法,并且我可以更好地控制布局上的所有触摸事件和孩子本身。

于 2013-01-21T22:21:09.083 回答