我需要有加载进度和错误占位符的网络img,并设置加载超时连接5秒。 我尝试了 NetworkImage、FadeInImage 和 CachedNetworkImage,但我无法在任何地方更改它。如果我的连接很差,我会一直显示加载屏幕,直到服务器出现错误,谁会导致无限加载。
我尝试更改 NetworkImage 源代码,其中有变量“_sharedHttpClient”,我可以在其中添加连接超时持续时间及其工作,但我不想更改源代码。 有谁知道一些第三方库,或者简单的解决方案如何解决它?非常感谢。
也许这样的事情可以帮助你
import 'package:cached_network_image/cached_network_image.dart';
import 'package:flutter/material.dart';
class MyApp extends StatelessWidget {
@override
Widget build(BuildContext context) {
return MaterialApp(
home: Scaffold(
body: Center(
child: CachedNetworkImage(
imageUrl: '', //add imag url here
placeholder: (context, url) => CircularProgressIndicator(),
errorWidget: (context, url, error) => Icon(Icons.error),
cacheManager: DefaultCacheManager(
httpClient: createHttpClient(), // Custm client method with timeout
),
),
),
),
);
}
HttpClient createHttpClient() {
return HttpClient()..connectionTimeout = Duration(seconds: 5);
}
}