2011-06-01 65 views
1

嗨极客!
这是使用ListView的问题。使用ListView时出现问题

当生成单个列表项视图时,在BaseAdapter.getView的方法中,可能会发出一些连续的异步远程数据请求,例如获取某人的照片。

但是,当响应回来时,ListView的机制可以重用列表项视图。我无法找到正确的观点来回应。

你们是怎么解决这个问题的?

回答

1

正如你所说,当你加载图像时,很有可能列表项不再可见或甚至不存在。因此,您可以使用ListView.getFirstVisiblePosition()和ListView.getLastVisiblePosition()来检查屏幕上显示的内容,如果它在屏幕上,则获取项目并设置图像。否则,你必须缓存图像(内存或SD卡取决于图像的大小和大小),下次调用getView()时,只需使用缓存图像。

我希望有帮助。

0

我相信你之后是“懒惰图像加载”+缓存。我通过this answer获得了我的实施。该包称为LazyList。

我希望这有助于

enter image description here