使用loadingBuilder时Flutter Image.network没有显示?

cod*_*_86 7 widget dart flutter

我正在使用 Image.network 从网络加载图像。当我简单地传递 url 时,图像工作正常。几秒钟后就会显示。但是当我使用loadingBuilder和errorBuilder时,图像被加载但不显示。我在loadingBuilder 中创建的循环进度完成并消失,但未显示图像。

这里的代码

Image.network(
      widget._imgLink,
      loadingBuilder: (context, child, loadingProgress) {
        return Center(
          child: CircularProgressIndicator(
            value: (loadingProgress != null)
                ? (loadingProgress.cumulativeBytesLoaded /
                    loadingProgress.expectedTotalBytes)
                : 0,
          ),
        );
      },
      errorBuilder: (context, error, stackTrace) {
        return Column(
          mainAxisAlignment: MainAxisAlignment.center,
          children: [
            Text("Error loading"),
            FlatButton(onPressed: () {}, child: Text("Retry")),
          ],
        );
      },
    ),
Run Code Online (Sandbox Code Playgroud)

如何告诉小部件在加载后显示图像?谢谢。

sh_*_*ark 7

childloadingBuilder何时为空返回loadingProgress将起作用。样本:

loadingBuilder: (context, child, loadingProgress) {
        if(loadingProgress == null)
          return child;

        return Center(
          child: CircularProgressIndicator(
            value: (loadingProgress != null)
                ? (loadingProgress.cumulativeBytesLoaded /
                    loadingProgress.expectedTotalBytes)
                : 0,
          ),
        );
      },
Run Code Online (Sandbox Code Playgroud)


jit*_*555 4

使用CachedNetworkImage它加载图像并提供错误和加载小部件。

dependencies:
  cached_network_image: ^2.3.3
Run Code Online (Sandbox Code Playgroud)

代码:

CachedNetworkImage(
  imageUrl: "http://via.placeholder.com/200x150",
  imageBuilder: (context, imageProvider) => Container(
    decoration: BoxDecoration(
      image: DecorationImage(
          image: imageProvider,
          fit: BoxFit.cover,
          colorFilter:
              ColorFilter.mode(Colors.red, BlendMode.colorBurn)),
    ),
  ),
  placeholder: (context, url) => CircularProgressIndicator(),
  errorWidget: (context, url, error) => Icon(Icons.error),
),
Run Code Online (Sandbox Code Playgroud)

  • 谢谢,但为什么我不能使用 Image.network 来实现同样的功能,因为它也提供了这些功能。 (2认同)