【发布时间】:2014-03-06 19:34:28
【问题描述】:
大家都知道 GridView 不像 ListView 那样支持页眉和页脚。
有几种方法可以实现这一点:
- 使用 ListView 并通过 ViewGroups 手动形成 columnt。它不适合我,因为它需要大量的布局操作,如测量和布局,并且很难在顶部实现绘图选择器。
- 使用特殊适配器。它适用于页脚:我们应该用
Space填充最后一个单元格,并在它们之后手动插入宽度等于 GridView 宽度的页脚。但这不适用于标题:虽然标题被拉伸,但下一个单元格会浮在上面。 - 使用网格布局。 GridLayout 很好,但是 500-1000 个单元格的性能如何? AdapterView 支持缓存和重用视图,据我所知,这在 GridLayout 中是不可能的。
-
扩展 GridView 并编写自定义类,允许在网格内容之前绘制标题。这很困难,但它应该工作得非常快。让我们试着弄清楚如何做到这一点:
- 测量接头。这很简单,我对此没有任何疑问。
- 网格顶部的布局标题。我们还应该考虑滚动位置以允许移动带有整个网格内容的标题,所以我的第一个问题是:如何知道滚动时底部边框的位置?
- 在标题之后布局整个网格内容。怎么做?我以前也这样做过。
- 也将绘图发送到标题视图并解决过度滚动效果,如果它不能正常工作。
- 处理滚动事件并刷新标题位置。
那么你有什么建议吗?如何进行标头偏移?每次滚动事件都调用重新布局是否正确?
【问题讨论】:
标签: android android-layout gridview android-custom-view android-gridview