我正在使用GridView显示电视频道列表,使用SimpleCursorAdapter从数据库中检索频道名称。默认行为是填充左边的网格 - >右,顶部 - >像...一样的底部。
1 2
3 4
5 6
GridView固定有2列,如果超过其父级的垂直边界,显然可以垂直滚动。
我有一个用户希望每个列都填充顶部>底部然后继续下一个,所以有效地我正在寻找一个固定数量的行,其中某个'grid'可以水平滚动,示例有9行(固定),没有垂直滚动,2列可见和水平滚动...
1 10 | 19
2 11 | 20
3 12 | 21
4 13 | 22
5 14 | 23 <-> 19-27 hidden, but columns scrollable horizontally
6 15 | 24
7 16 | 25
8 17 | 26
9 18 | 27
我理解GridView本身不能这样做,但是现有的视图是否会像这样?如果没有,创建自定义视图的最佳方法是什么?
感谢。
答案 0 :(得分:3)
使用GridView无法做到这一点。您必须创建自定义视图才能执行此操作。
修改 - 如果您知道网格项目有多大,则可以剪切一些角落。 GridView很复杂,主要是因为它处理任何大小的项目并动态加载它们。对您来说更简单的方法可能是:
HorizontalScrollView
的{{1}}。LinearLayout
。rows
您仍然需要布置项目:
while
,向其添加LinearLayout
个或更少的项目。rows
添加到水平位置。“水平GridView”会给你带来一些缺点:
上升空间: