Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/dart/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Dart NetworkImage和Image.network的区别?_Dart_Flutter - Fatal编程技术网

Dart NetworkImage和Image.network的区别?

Dart NetworkImage和Image.network的区别?,dart,flutter,Dart,Flutter,两者有什么不同吗 缺点是什么?在正常情况下,哪一个更容易使用 两者有什么不同吗 对。他们是不同的 类创建一个对象,该对象从传递给它的srcURL提供图像。它不是小部件,不会将图像输出到屏幕 创建在屏幕上显示图像的小部件。它只是类(有状态小部件)上的一个命名构造函数。它使用NetworkImage设置image属性。此图像属性最终用于显示图像 class Image extends StatefulWidget{ Image(...){}; //default Constructor

两者有什么不同吗

缺点是什么?在正常情况下,哪一个更容易使用

两者有什么不同吗

对。他们是不同的

  • 类创建一个对象,该对象从传递给它的
    src
    URL提供图像。它不是小部件,不会将图像输出到屏幕
  • 创建在屏幕上显示图像的小部件。它只是类(有状态小部件)上的一个命名构造函数。它使用
    NetworkImage
    设置
    image
    属性。此
    图像
    属性最终用于显示图像

    class Image extends StatefulWidget{
      Image(...){}; //default Constructor
    
    
      //the argument src is passed to the NetworkImage and assinged to the image property
      Image.network(String src, {...}) : image = NetworkImage(src, ...);
    
    
      final ImageProvider image;
    
      @override
      Widget build(BuildContext context){
        display the image
        return RawImage(image: image,
          ...
        );
      }
    }
    
缺点是什么?在正常情况下,哪一个更容易使用

没有缺点。你应该使用适合你需要的那种。例如,考虑:

  • 显示代表用户的圆圈的小部件获取
    backgroundImage
    。它需要一个ImageProvider。所以你通过
    NetworkImage(http://image.com)
  • 在加载原始图像时显示占位符的属性也会使用
    ImageProvider
    作为其
    image
    属性。因此,您可以提供它
    NetworkImage(http://image.com)

  • 如果您只想在屏幕上显示图像作为小部件,请使用
    image.network
    并在任何需要
    ImageProvider
    的地方使用
    NetworkImage

    CircleAvatar文档中我的一个困惑是“如果ForegoryImage失败,那么就使用backgroundImage。”这对我来说,表示应首选
    foregroundImage
    作为键。但是构造函数确实首先列出了
    backgroundImage
    作为第一个ImageProvider类型。我的代码是:PhotoView(imageProvider:NetworkImage(widget.photoPath.toString(),),请建议在加载网络图像之前如何使用占位符图像。谢谢。