Android 可填写';网格状';按列而不是按行查看?

Android 可填写';网格状';按列而不是按行查看?,android,gridview,Android,Gridview,我使用GridView显示电视频道列表,使用SimpleCursorAdapter从db检索频道名称。默认行为是填充网格左->右,顶部->底部,如 1 2 3 4 5 6 GridView固定为2列,如果超出其父级的垂直边界,则显然可以垂直滚动 我有一个用户,他希望每一列在进入下一列之前都填充在顶部->底部,所以我希望有固定数量的行,带有某种水平滚动的“网格”,例如9行(固定),没有垂直滚动,2列可见,水平滚动 1 10 | 19 2 11 | 20 3 12 | 21 4 13 | 22 5

我使用GridView显示电视频道列表,使用SimpleCursorAdapter从db检索频道名称。默认行为是填充网格左->右,顶部->底部,如

1 2
3 4
5 6
GridView固定为2列,如果超出其父级的垂直边界,则显然可以垂直滚动

我有一个用户,他希望每一列在进入下一列之前都填充在顶部->底部,所以我希望有固定数量的行,带有某种水平滚动的“网格”,例如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
110 | 19
2 11 | 20
3 12 | 21
4 13 | 22
5 14 | 23 19-27隐藏,但列可水平滚动
6 15 | 24
7 16 | 25
8 17 | 26
9 18 | 27
我理解GridView本身无法做到这一点,但是否存在这样的现有视图?如果不是,创建自定义视图的最佳方法是什么


谢谢。

你不能用GridView完成。您必须创建自定义视图才能执行此操作

编辑-如果你知道你的网格项目有多大,你可以走捷径。GridView之所以复杂,主要是因为它处理任意大小的项并动态加载它们。对您来说,更简单的方法可能是:

  • 创建一个内部带有水平
    线性布局的
    水平滚动视图
  • 确定屏幕上将显示多少行项目。调用此
  • 虽然
    您仍有需要布局的项目:
  • 创建垂直
    线性布局
    ,向其中添加
    或更少的项目
  • 将新的垂直
    线性布局添加到水平布局
  • 与“水平网格视图”相比,它有一些缺点:

    • 所有视图都会立即加载,这对庞大的项目列表是不利的
    • 你需要知道你的物品有多大,它们的大小必须相同
    正面:

    • 它很容易实现

    可能重复@Matthew:OK,我承认我的标题特别提到GridView,但我已经想到我无法旋转/定位GridView的布局。我的问题是,是否有一种观点可以做到这一点,或者如何最好地处理这种情况。我将编辑我的标题,谢谢你指出这一点。@Squonk这个伙伴运气好吗?我有一个类似的问题,请看谢谢,自从我发布我的问题以来,我一直在看HorizontalScrollView,但还没有决定下一步要去哪里。我的理想是让adapterview和adapter的关系为我处理一切,但我想我必须自己处理一切。不过,你给了我足够的开始——可能会很有趣!是的,您可以实现自己的AdapterView,这可能是一种很好的可重用方式。在Android源代码中查看GridView.java,让我觉得这可能比它的价值更麻烦。我在这方面取得了一些进展,尽管这不是一个优先事项,所以现在暂时搁置。不过我想我可以根据你的建议来做。谢谢