我的 Android 应用程序中有一个画廊小部件,显示汽车的图像(它不是真正的汽车,但汽车作为示例)。画廊在画廊中为每个项目显示一个汽车模型,所以我们可能有一个类似的画廊:
- 福特 T 型车
- 保时捷 911
- 福特野马
当用户长按图库中的一个项目时,他们可以为相关汽车选择一个新图像——因此,如果用户长按福特野马图像,他们会看到一个新的福特野马图片库,他们可以选择他们真正想在主画廊中看到的图像(也许他们想看到红色而不是黄色)。
这在代码中工作得很好——我只有一个整数数组,其中每个汽车模型的数组中有一个整数,每个整数代表图像的索引。
用户选择一个新图像,然后日志显示:
MoreCarImagesGallery:用户为 ID 为 219(福特野马)的汽车选择了图像 3 MainGalleryAdapter:为位置 2 的汽车设置选定图像 (3)
适配器getView() 然后执行:
Image img = imageLookup.getImageForCar(car.id, selectedImageIndexes[position]);
然而!当我回到主画廊时,之前显示的有关汽车的图像仍在显示。但!当我从显示的汽车向左或向右滚动一些项目,然后滚动回该汽车时,图像会更新为“新”(用户选择的)图像。
所以很明显画廊正在对我的适配器中的图像进行一些缓存。我可能希望这种情况继续发生,因为我认为如果没有缓存,画廊在速度较慢的手机上会非常滞后。
如何使我的画廊中的图像无效以强制我的适配器 getView() 返回“新”图像?