Flutter - 类型 'List<dynamic>' 不是类型 'List<File>' 的子类型

Flutter - type 'List<dynamic>' is not a subtype of type 'List<File>'

我试图使用 ListView.builder 动态显示图像列表,因为它们被保存到文件类型的数组中,

这是我的代码:


List<File> viewImg = [].toList();

_imgFromGallery() async {
    File image = await ImagePicker.pickImage(
        source: ImageSource.gallery, imageQuality: 50);

    setState(() {
      _image = image;
      viewImg.add(image);
    });
  }

    ListView.builder(
                          itemCount: viewImg.length,
                          itemBuilder: (BuildContext context, int index) {
                            return new SingleChildScrollView(
                              physics: ScrollPhysics(),
                              child: Column(children: [
                                Container(
                                margin:EdgeInsets.only(top30),
                                  width: size.width * .8,
                                  height: 149,
                                  decoration: BoxDecoration(
                                      image: DecorationImage( 
                                       image:FileImage(viewImg[index]),
                                  )),
                                ),

每次我 运行 它都会得到错误:

 type 'List<dynamic>' is not a subtype of type 'List<File>'.

请帮助我并提前致谢。

简单替换

List<File> viewImg = [].toList();

有了这个

List<File> viewImg = [];

当你说:

List<File> viewImg = [].toList();

您实际上是在创建一个 List<dynamic> 并将其分配给一个 List<File>,这是一个错误。你可以做的是,要么使用 List.from

List<File> viewImg = List<File>.from([].toList());

List<File> viewImg = <File>[].toList();

这些只是做简单事情的糟糕方法(因为您只是复制列表),您应该使用:

List<File> viewImg = [];

var viewImg = <File>[];