1

我对 Android 中的 Gridview 有疑问。

上下文:我有一个网格视图,其中包含下载的图像列表(大约 100 个图像)。

为了让用户更方便,加载第一个gridview,里面有100张图片,上面有一个logo正在加载。之后,我启动了一个 AsyncTask: 在 onProgressUpdate => 使用 gridview.getChildAt 更新图像 在 onPostExecute => 使用下载的位图列表更改 gridview 适配器

我的问题在 onProgressUpdate 中。使用 getChildAt(position) 时,我意识到 position 是指项目在可见矩形中的位置。所以有两个问题:=>首先,隐藏的图像没有更新(这就是为什么我在 PostExecute 中做一个 setAdapter)=>其次,如果我在下载时滚动,它会忘记第一个图像,以及滚动时的一些其他问题,但很难用文字表达...

我的问题有点简单,但我没有在 Android 参考中找到,也没有在 Google 搜索之后找到: - 如何通过实际位置而不是可见位置更新网格视图中的视图?

非常感谢

4

1 回答 1

1

不可见的视图不存在,因此您无法更新它们。一旦用户滚动到特定项目,您只能更新您的支持模型以获取正确的信息。因此,您需要做的是检索图像并将它们保存在缓存(或模型本身)中,您可以在渲染特定视图时访问该缓存。

但是,我建议无需检索用户尚未看到的任何图像。

于 2011-06-05T13:34:26.483 回答