我在 Flutter 中使用 CachedNetworkImage,我想知道如何实现图像下载失败时重试的机制?在我的示例中,位于 errorWidget > GestureDetector > onTap 部分。
@override
Widget build(BuildContext context) {
final imgKey = Key(imgUrl);
return CachedNetworkImage(
key: imgKey,
imageUrl: imgUrl,
...
errorWidget: (context, url, error) => Center(
child: GestureDetector(
child: Column(
children: [
const Icon(
Icons.refresh,
color: Colors.red,
),
const Text('Error downloading image.'),
const Text('Tap to retry.'),
],
),
onTap: () { // Implement image reload here
setState(() {
// manager
// .removeFile(url)
// .then((value) => manager.getSingleFile(url));
});
},
),
),
cacheManager: manager,
);
}
Run Code Online (Sandbox Code Playgroud)
您可以使用https://pub.dev/packages/flutter_image而不是 CachedNetworkImage;
像这样使用它:
new Image(
image: new NetworkImageWithRetry(imageUrl),
),
Run Code Online (Sandbox Code Playgroud)
它是关于缓存的: https://github.com/flutter/flutter_image/blob/master/lib/network.dart#L26
| 归档时间: |
|
| 查看次数: |
3095 次 |
| 最近记录: |