0

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

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

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

换句话说,我想UITableView在 iOS 中创建类似的东西。我怎样才能做到这一点?

4

2 回答 2

2

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

public void setAdapter (ListAdapter adapter)

在您的适配器上GridView,然后该适配器将收到如下回调:

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

重用与出列 a 相同的convertView方式很重要UITableViewCell

 - (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath

如果您正确执行所有操作,它将永远不会尝试一次加载所有视图,而只会加载当前显示的视图,并且您应该不再有内存问题。

于 2012-06-22T09:11:40.243 回答
0

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

于 2012-06-22T08:55:43.217 回答