1、清除图片缓存
由于动态图加载完成后,由于缓存原因,再次加载图片时,会直接从缓存读取最后一帧的画面。需要清缓存后预加载图片
// 清除图片缓存
void clearImageCache(AssetBundleImageKey key) {
final ImageCache imageCache = PaintingBinding.instance.imageCache;
imageCache.evict(key);
}
2、获取AssetBundleImageKey
AssetBundleImageKey getAssetBundleImageKey(ImageProvider provider, BuildContext context) async {
final ImageConfiguration config = createLocalImageConfiguration(context);
return await provider.obtainKey(config);
}
3、预加载图片
void preLoadImage(ImageProvider provider, BuildContext context) {
return precacheImage(provider, context)
};
参考:https://book.flutterchina.club/chapter14/image_and_cache.html