禁止GridView一次加载所有视图

时间:2012-06-22 08:51:30

标签: android gridview android-gridview

我在网格视图中显示大约700个项目。

在三星Galaxy Tab 10.1上,这不是问题:它有足够的内存。 在HTC Explorer上,堆溢出。

所以我想动态加载有关当前滚动位置的数据(屏幕为N行,尾部为5行)。我想显示一个滚动条,表示总行数的位置。但我不想画出我看不到的物品。

换句话说,我想在iOS中创建类似于UITableView的内容。我怎么能这样做?

2 个答案:

答案 0 :(得分:2)

Android Adapter的工作方式与iOS UITableViewDataSource类似。你需要打电话

public void setAdapter (ListAdapter adapter)
GridView

,然后该适配器将收到如下回调:

public int getCount ()
public View getView (int position, View convertView, ViewGroup parent)

重新使用convertView非常重要,就像您在

中出列UITableViewCell一样
 - (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath

如果你正确地做了这一切,它将永远不会尝试一次加载所有视图,但只会加载当前显示的视图,不再有内存问题。

答案 1 :(得分:0)

您应该使用能够重用View对象的ListView,这样您就不必实例化这么多对象。