【问题标题】:Using ImagePicker for two images in same view对同一视图中的两个图像使用 ImagePicker
【发布时间】:2021-03-13 13:21:27
【问题描述】:

我不明白为什么在同一视图中包含两个图像选择器小部件会导致我的应用崩溃。我可以选择一张图片,但在尝试选择第二张图片时,应用程序崩溃且没有任何错误消息。

所以我在提交表单时基本上需要添加两张图片。一张图片作为徽标,另一张图片作为背景图片。

图像选择器插件:

import 'package:image_picker/image_picker.dart';

我将它们定义如下:

File _venueLogo;
File _venueImage;

final _pickers = [ImagePicker(), ImagePicker()];

以及设置两张图片的方法

_setVenueImage(img) {
  setState(() {
    _venueImage = img;
  });
}

_setVenueLogo(img) {
  setState(() {
    _venueLogo = img;
  });
}

然后在正文中,我使用两个 ListTiles,一个用于场地图像,一个用于徽标图像。我这里只发一个。

ListTile(
      subtitle: Container(
        decoration: BoxDecoration(
          borderRadius: BorderRadius.circular(8.0),
          border: Border.all(
            color: Colors.grey,
          ),
        ),
        padding: EdgeInsets.all(20.0),
        child: ImagePickerWidget(
          setImage: _setVenueImage,
          picker: _pickers[0],
        ),
      ),
      title: Padding(
        padding: const EdgeInsets.all(8.0),
        child: Text("Pick image"),
      ),
    ),

这是ImagePickerWidget中的图片选择器方法

Future _getImage() async {
  final pickedFile =
      await widget.picker.getImage(source: ImageSource.gallery);

  if (pickedFile != null) {
    widget.setImage(File(pickedFile.path));
  } else {
    print('No image selected.');
  }
}

【问题讨论】:

    标签: flutter dart


    【解决方案1】:

    不要使用image_picker,而是使用multi_image_picker 来选择多个文件。

    在你的pubspec.yamldependencies: 之后添加:

      multi_image_picker: ^4.8.0
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2016-02-12
      • 2017-07-02
      • 1970-01-01
      • 2013-02-28
      • 1970-01-01
      • 2018-04-22
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多