我有大约 700 个项目要显示在网格视图中。
在三星 Galaxy Tab 10.1 上,这不是问题:它有足够的内存。在 HTC Explorer 上,堆溢出。
所以我想动态加载关于当前滚动位置的数据(屏幕 N 行 + 5 行作为尾部)。我想显示一个滚动条,它代表总行中的位置。但我不想画我看不到的物品。
换句话说,我想UITableView
在 iOS 中创建类似的东西。我怎样才能做到这一点?
我有大约 700 个项目要显示在网格视图中。
在三星 Galaxy Tab 10.1 上,这不是问题:它有足够的内存。在 HTC Explorer 上,堆溢出。
所以我想动态加载关于当前滚动位置的数据(屏幕 N 行 + 5 行作为尾部)。我想显示一个滚动条,它代表总行中的位置。但我不想画我看不到的物品。
换句话说,我想UITableView
在 iOS 中创建类似的东西。我怎样才能做到这一点?
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
如果您正确执行所有操作,它将永远不会尝试一次加载所有视图,而只会加载当前显示的视图,并且您应该不再有内存问题。
您应该使用能够重用 View 对象的 ListView,这样您就不必实例化这么多对象。