Flutter重试机制插件hf_retry的使用
Flutter重试机制插件hf_retry的使用
hf_retry
一个用于在网络连接中断时提升用户体验的插件。
- 当网络不可用时,会显示占位图像而不是
NetworkImage
。 - 当设备重新连接到互联网时,会自动重试并获取
NetworkImage
。
只需将 NetworkImageWithRetry
替换为 NetworkImage
即可。
示例
Image(
image: NetworkImageWithRetry('http://example.com/avatars/123.jpg'),
errorBuilder: (context, _, __) {
return FlutterLogo(
size: 200,
);
},
),
完整示例代码
以下是一个完整的示例代码,展示了如何使用 hf_retry
插件来实现重试机制。
import 'package:flutter/material.dart';
import 'package:hf_retry/hf_retry.dart';
void main() {
runApp(MyApp());
}
class MyApp extends StatelessWidget {
// 这个小部件是应用程序的根节点。
[@override](/user/override)
Widget build(BuildContext context) {
return MaterialApp(
title: 'Flutter Demo',
theme: ThemeData(
primarySwatch: Colors.blue,
visualDensity: VisualDensity.adaptivePlatformDensity,
),
home: Scaffold(
body: Center(
child: Image(
// 使用 NetworkImageWithRetry 来加载网络图片
image: NetworkImageWithRetry(
'https://upload.wikimedia.org/wikipedia/commons/thumb/b/b6/Image_created_with_a_mobile_phone.png/1200px-Image_created_with_a_mobile_phone.png',
),
// 错误构建器:当加载失败时显示 FlutterLogo
errorBuilder: (context, _, __) {
return FlutterLogo(
size: 200,
);
},
// 加载构建器:在图片加载过程中显示进度条
loadingBuilder: (BuildContext context, Widget child,
ImageChunkEvent? loadingProgress) {
if (loadingProgress == null) return child;
return Center(
child: CircularProgressIndicator(
// 显示加载进度
value: loadingProgress.expectedTotalBytes != null
? loadingProgress.cumulativeBytesLoaded /
loadingProgress.expectedTotalBytes!
: null,
),
);
},
),
),
),
);
}
}
更多关于Flutter重试机制插件hf_retry的使用的实战系列教程也可以访问 https://www.itying.com/category-92-b0.html
1 回复