两者有什么区别吗?

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

最佳答案



是的。它们不一样。

  • NetworkImage类创建一个对象,并通过传递给它的src URL提供图像。它不是小部件,也不向屏幕输出图像。
  • Image.network创建一个在屏幕上显示图像的小部件。它只是Image类(有状态的小部件)上的命名构造函数。它使用image设置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,
          ...
        );
      }
    }
    



  • 没有缺点。您应该使用适合需要的那一种。例如考虑:
  • CircleAvatar显示表示用户的圆圈的窗口小部件采用backgroundImage。它需要一个ImageProvider。所以你通过NetworkImage(http://image.com)
  • 在加载原始图像时显示占位符的
  • FadeInImage也为其ImageProvider属性采用了image。因此,您可以提供NetworkImage(http://image.com)

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

    关于dart - NetworkImage和Image.network的区别?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/52242995/

    10-09 15:53