两者是否有区别?
缺点是什么?在正常情况下哪个更容易使用?
答案 0 :(得分:9)
两者是否有区别?
是的。他们是不同的。
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,
...
);
}
}
缺点是什么?在正常情况下哪个更容易使用?
没有缺点。您应该使用适合需要的那一种。例如,请考虑:
backgroundImage
。它需要一个ImageProvider。因此,您通过了NetworkImage(http://image.com)
ImageProvider
属性也需要使用image
。因此,您可以NetworkImage(http://image.com)
提供它。如果您只想在屏幕上将图像显示为小部件,请使用Image.network
,并在需要NetworkImage
的任何地方使用ImageProvider
。