1

我之前的列表实现是一个简单的 LinearLayout,它位于一个 ScrollView 中,里面装满了我的项目。

我切换到 ListView 的 Android 实现以简单地使用 CursorAdapter。一切正常,但有一个问题让我抓狂。

我的项目由一些 TextViews 和一个 ImageView 组成。我从 Internet 或本地 ImageCache 加载图像。但即使使用 ImageCache,我也可以在滚动时看到图像异步加载。图像首先弹出一半。

问题是 ListView 的回收机制动作太快了。我希望 Listview 在距离可见的 200dp 以上创建我的列表项。只是一个简单的预加载机制来确保项目完全加载,直到它们变得可见。但我没有找到任何线索,我可以在 ListView 中添加这个缓冲区的位置和方式。

有人知道类似的实现吗?我是否忽略了文档中的某些内容?

但我很确定这种缓冲区没有谷歌实现。看看人脉应用。没有预加载...

这就是回收站目前的工作方式

现在如何运作

4

1 回答 1

1

getView()您可以期望的最好结果是根据您的子类的调用CursorAdapter和请求的位置计算您自己的“前瞻”指数。显然,一旦getView()被调用,Android 就会尝试显示该位置的项目。有的话就画出来。如果您不这样做,请将其排队以将其拉入,然后开始将下一个 N 项排队,无论您希望提前多深。

于 2012-12-04T02:19:52.410 回答