我想使用一个可以轻松显示500个项目的gridview。像每行3个项目和许多行..我不希望gridview有真正的500项。例如,如果屏幕一次可以显示15个项目,我希望它重复使用这些项目并用对应于当前滚动位置的项目替换它们的内容。 (如iOS中的TableView或Windows 8和Windows Phone 8中的虚拟化面板)。
想想这就像一个照片应用程序,列出3列中的照片,你甚至可以滚动1000个项目或5000个项目(它只需要用户自己的时间滚动到那个深,我只是希望视图能够处理与他们的计数无关的项目)
我该怎么做?
答案 0 :(得分:1)
我有个好消息!适配器模式就是为此目的而构建的。
适配器 - Adapter对象充当AdapterView与该视图的基础数据之间的桥梁。适配器 提供对数据项的访问。适配器也负责 为数据集中的每个项目创建一个View。 See here for more
GridView - GridView是一个ViewGroup,用于显示二维可滚动网格中的项目。网格项目是 使用ListAdapter自动插入布局。为 介绍如何使用适配器动态插入视图, 阅读Building Layouts with an Adapter.
使用这些页面中显示的示例来了解如何将GridView与适配器一起使用,然后修改适配器的示例代码,以便从您想要的地方而不是从R.drawables
加载图片。
要特别注意ListAdapter getView()
方法中的部分,尤其是传递给View convertView
的{{1}}参数。如果可能,该参数将是“循环”视图。 (已经完全退出屏幕的那个。因此被更长时间使用)因此,每当您可以滚动浏览数千个项目的列表时,通过重新使用它而不是创建getView()
视图,同时仍然只使用确切地说,显示一个完整的屏幕需要多少View对象。