NetworkImage和Image.network的区别?

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

它们两者有什么不同吗?

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

dart flutter
1个回答
9
投票

它们两者有什么不同吗?

是。它们是不同的。

  • 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, ... ); } }

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

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

  1. 显示代表用户的acircle的CircleAvatar小部件需要backgroundImage。它需要一个ImageProvider。所以你通过NetworkImage(http://image.com)
  2. 在原始图像加载时显示占位符的FadeInImage也为其ImageProvider属性采用image。所以你可以提供它NetworkImage(http://image.com)

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

© www.soinside.com 2019 - 2024. All rights reserved.