我在Android中遇到Gridview问题。
背景: 我有一个gridview,下载了一系列图像(大约100张图片)。
为了方便用户,首先加载第一个网格视图,内部有100个图像,其中有一个标识加载。 之后,我启动一个AsyncTask: 在onProgressUpdate =>使用gridview.getChildAt更新图像 在onPostExecute =>使用下载的位图列表更改gridview的适配器
我的问题出在onProgressUpdate上。 当使用getChildAt(position)时,我意识到该位置意味着项目在可见rect中的位置。所以有两个问题: =>首先,隐藏的图像不会更新(这就是我在PostExecute中执行setAdapter的原因) =>其次,如果我在下载时滚动,它会在滚动时忘记第一个图像和其他一些问题,但很难用词语表达...
我的问题有点容易,但我没有在Android参考中找到,也没有在Google搜索后找到: - 如何通过其实际位置更新网格视图中的视图,而不是通过可见位置更新?
非常感谢
答案 0 :(得分:1)
不可见的视图不存在,因此您无法更新它们。一旦用户滚动到特定项目,您只能更新您的支持模型以获得正确的信息。因此,您需要做的是检索图像并将它们保存在渲染特定视图时可以访问的缓存(或模型本身)中。
但是,我建议不需要检索用户尚未看到的任何图像。