0

我有一个列表视图,显示包含来自网络的图像的行。

一旦需要绘制一行Adapter.getView(...),我会在后台下载图像并将其设置为ImageViewUI 线程中的 。这意味着位图以延迟的方式设置到 ImageView 中。

我用简单的可绘制资源尝试了延迟的 setImage...() ,结果是一样的。

我观察到以延迟方式设置资源会导致整个列表从位置 0 开始重新绘制,甚至没有显示 - 直到显示的位置。明显的问题是列表滚动缓慢且跳跃且不流畅。

我在这里要格外小心:滚动一点时会发生这种情况。新看到的项目确实被绘制为常规的一部分makeAndAddView。但是,紧接着所有通向可见行的行都被绘制为measureHeightOfChildren.

立即设置图像而不是延迟不会导致onMeasure调用。

那么如何防止重新绘制所有列表,为什么立即 setImage 和延迟之间的行为不同?

4

1 回答 1

0

延迟与未延迟的setImage...()问题仍未解决。

我确实设法通过将列表视图设置layout_heightmatch_parent而不是wrap_content.

于 2014-10-14T14:34:26.987 回答