我有一些观点,我必须放在一个4 x 6网格中。每个视图应具有相同的宽度w和相同的高度h并填充屏幕。我想要的是使用GridLayout或GridView来绘制这些。
我知道我可以在GridView中使用stretchMode =“columnWidth”,它为每个子节点设置相等的宽度。我还希望它设置相同的高度并垂直填充屏幕。
我可以通过使用GridView中的任何一个来实现这一点,或者如果不能实现GridLayout吗?我在切换到LinearLayouts并使用权重之前寻找GridView,因为我将自定义视图作为网格项,我希望使用适配器而不是为每个元素编码。
答案 0 :(得分:1)
您仍然可以将Adapters
与LinearLayouts
或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传递可能会加快速度。
答案 1 :(得分:0)
我做了一个自定义布局,扩展了线性布局。我发现对于我的情况来说这是一种更好的方法,我可以更好地控制布局上的所有触摸事件以及孩子们自己。