【问题标题】:How to solve "The argument type 'ImageProvider<Object>' can't be assigned to the parameter type 'ImageProvider'?" in flutter如何解决“无法将参数类型'ImageProvider<Object>'分配给参数类型'ImageProvider'?”飘飘然
【发布时间】:2021-11-20 15:53:43
【问题描述】:

我正在使用颤振打印库将选定的图像制作为 pdf。我有一个列表,在该列表中有所选图像的路径。 代码如下:

final doc = pw.Document();


    for(var i=0;i>selected.length;i++){
      Image img=Image.file(File(selected[i]));
      ImageProvider image=img.image;



      doc.addPage(pw.Page(
          build: (pw.Context context) {
            return pw.Center(
              child: pw.Image(image),
            ); // Center
          })); // Page




    }

pw.Image 只接受 ImageProvider 但我收到此错误:

The argument type 'ImageProvider<Object>' can't be assigned to the parameter type 'ImageProvider'.

我该如何解决这个问题?

【问题讨论】:

  • 错误出现在哪一行?
  • 这里:pw.Image(image),image 参数给出了错误。
  • 你有一个最小的、完整的、可重现的例子吗? ImageProviderImageProvider&lt;Object&gt; 的简写,所以应该没有理由不能将ImageProvider&lt;Object&gt; 分配给ImageProvider

标签: flutter


【解决方案1】:

它目前是颤振的问题。要绕过它,您可以将对象转换为 Image Provider

child: pw.Image(image) as ImageProvider

这也被讨论过here

【讨论】:

  • 现在我收到此错误:参数类型“ImageProvider”无法分配给参数类型“Widget?”。
  • 链接的问题是关于将Object 作为ImageProvider&lt;Object&gt; 传递。这是一个不同的错误,需要强制转换,因为默认情况下有意不再允许隐式向下转换,因为它们不安全。
猜你喜欢
  • 2023-02-10
  • 2021-06-08
  • 2022-08-18
  • 2019-11-28
  • 2021-11-03
  • 1970-01-01
  • 2022-08-19
  • 2022-01-04
  • 1970-01-01
相关资源
最近更新 更多