抖动图像加载和缓存

时间:2019-05-14 07:28:39

标签: image caching flutter cache-control

这是我的用例:

  1. 我正在获取图像的URL列表。
  2. 我希望不仅在特定会话中显示并缓存它们,而且在下一次不应该进行Web服务调用时。

我们的应用程序也可以离线使用。我尝试了一些flutter_advanced_networkimageflutter_cache_manager之类的库,但是我变得相当落后,而且大多数时候应用程序崩溃。

2 个答案:

答案 0 :(得分:1)

将其保存在应用程序的临时目录中:

import 'dart:io';

// https://pub.dev/packages/path_provider
import 'package:path_provider/path_provider.dart';

final Directory temp = await getTemporaryDirectory();
final File imageFile = File('${temp.path}/images/someImageFile.png');

if (await imageFile.exists()) {
  // Use the cached images if it exists
} else {
  // Image doesn't exist in cache
  await imageFile.create(recursive: true);
  // Download the image and write to above file
  ...
}

它会在应用启动时持续存在,只有在用户亲自清除缓存或重新安装应用后才会被删除。

答案 1 :(得分:0)

我一直在使用cached_network_image,其工作方式如广告所示