В настоящее время в CachedNetworkImage отсутствует получение кэшированного изображения по ключу
Используемый вами ключ - это ключ Widgets, не связанный с CachedNetworkImage
поведением
Давайте посмотрим, что находится внутри CachedNetworkImage
cached_network_image
зависит от flutter_cache_manager
И flutter_cache_manager
имеет реализацию ( issue # 179 ) повторного вызова по ключу, но он все еще не выпущен ни в одной версии
Таким образом, CachedNetworkImage
будет пропускать эту функциональность, пока flutter_cache_manager version
не выпустит ее новые версии
Хотя мы можем использовать эту функциональность, но нам нужно реализовать виджет с нашей стороны
Временное решение
- зависит от flutter_cache_manager
/// this is pubspec dependencies:
flutter_cache_manager:
git:
url: https://github.com/Baseflow/flutter_cache_manager
path: flutter_cache_manager
ref: f109a48c31c4b3ed0a2c1ea2a5749c495e4fa2f4
доработайте эту наивную реализацию в соответствии с вашим вариантом использования
FutureBuilder<File>(
future: DefaultCacheManager().getSingleFile(
'url', key: 'file-id'),
builder: (context, snapshot) {
if (snapshot.hasData) {
return Image.file(snapshot.data);
}
// implement here some behavior like CachedNetworkImage does
return CircularProgressIndicator();
},
);
PS Я обновлю ответ, когда CachedNetworkImage будет поддерживать