Flutter报错:参数类型‘Image’无法分配给‘ImageProvider<Object>’求解决
问题原因及解决办法
原因
你把Flutter的Image组件(Widget)传给了需要ImageProvider类型的参数,两者类型不匹配:
Image.network()返回的是用于界面展示的ImageWidget(来自widgets/image.dart)- 而报错的参数需要的是
ImageProvider(来自painting/image_provider.dart),它是图片数据的提供者,并非界面组件
解决办法
根据使用场景调整代码:
- 如果是在
DecorationImage(比如容器背景图)这类需要ImageProvider的地方,用NetworkImage()替代Image.network():// 错误写法 Container( decoration: BoxDecoration( image: DecorationImage( image: Image.network("你的图片URL"), ), ), ) // 正确写法 Container( decoration: BoxDecoration( image: DecorationImage( image: NetworkImage("你的图片URL"), ), ), ) - 如果是直接在界面上展示图片,
Image.network()本身就是正确的Widget用法,直接放在Widget树里即可:// 正确用法 Center( child: Image.network("你的图片URL"), )
内容的提问来源于stack exchange,提问作者careretei31
相关产品推荐
相关产品推荐

