Flutter - 网络图像和连接超时

问题描述 投票:0回答:1

我需要有加载进度和错误占位符的网络img,并设置加载超时连接5秒。 我尝试了 NetworkImage、FadeInImage 和 CachedNetworkImage,但我无法在任何地方更改它。如果我的连接很差,我会一直显示加载屏幕,直到服务器出现错误,谁会导致无限加载。

我尝试更改 NetworkImage 源代码,其中有变量“_sharedHttpClient”,我可以在其中添加连接超时持续时间及其工作,但我不想更改源代码。 有谁知道一些第三方库,或者简单的解决方案如何解决它?非常感谢。

flutter image widget connection-timeout flutter-image
1个回答
0
投票

也许这样的事情可以帮助你

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);
  }
}
© www.soinside.com 2019 - 2024. All rights reserved.