Flutter多图选择插件multiple_image_picker_widget的使用

Flutter多图选择插件multiple_image_picker_widget的使用

特性

Image picker for Flutter, 一个适用于iOS和Android的插件。

开始使用

在您的 pubspec.yaml 文件中添加以下依赖:

$ flutter pub add multiple_image_picker_widget

使用方法

以下是一个简单的示例,展示如何使用 multiple_image_picker_widget 插件来选择多张图片。

示例代码

import 'package:flutter/material.dart';
import 'package:multiple_image_picker_widget/multiple_image_picker_widget.dart';

void main() {
  runApp(const MyApp());
}

class MyApp extends StatelessWidget {
  const MyApp({super.key});

  @override
  Widget build(BuildContext context) {
    return MaterialApp(
      title: 'Flutter Demo',
      theme: ThemeData(
        colorScheme: ColorScheme.fromSeed(seedColor: Colors.deepPurple),
        useMaterial3: true,
      ),
      home: const MyHomePage(title: 'Flutter Demo Home Page'),
    );
  }
}

class MyHomePage extends StatefulWidget {
  const MyHomePage({super.key, required this.title});

  final String title;

  @override
  State<MyHomePage> createState() => _MyHomePageState();
}

class _MyHomePageState extends State<MyHomePage> {
  List<String> _selectedImages = [];

  void _pickImages() async {
    List<String>? images = await MultipleImagePicker.pickImages(maxImages: 10);
    if (images != null) {
      setState(() {
        _selectedImages = images;
      });
    }
  }

  @override
  Widget build(BuildContext context) {
    return Scaffold(
      appBar: AppBar(
        title: Text(widget.title),
      ),
      body: Center(
        child: Column(
          mainAxisAlignment: MainAxisAlignment.center,
          children: [
            ElevatedButton(
              onPressed: _pickImages,
              child: Text('选择图片'),
            ),
            SizedBox(height: 20),
            _selectedImages.isNotEmpty
                ? Expanded(
                    child: ListView.builder(
                      itemCount: _selectedImages.length,
                      itemBuilder: (context, index) {
                        return Image.network(_selectedImages[index], fit: BoxFit.cover);
                      },
                    ),
                  )
                : Text('未选择图片'),
          ],
        ),
      ),
    );
  }
}

其他信息

完整的代码可以在 GitHub 仓库中查看 这里


更多关于Flutter多图选择插件multiple_image_picker_widget的使用的实战教程也可以访问 https://www.itying.com/category-92-b0.html

1 回复

更多关于Flutter多图选择插件multiple_image_picker_widget的使用的实战系列教程也可以访问 https://www.itying.com/category-92-b0.html


multiple_image_picker_widget 是一个用于在 Flutter 应用中选择多张图片的插件。它提供了简单易用的接口,允许用户从设备的相册中选择多张图片,并将其返回给应用程序。

安装

首先,你需要在 pubspec.yaml 文件中添加依赖:

dependencies:
  flutter:
    sdk: flutter
  multiple_image_picker_widget: ^1.0.0  # 请检查最新的版本号

然后运行 flutter pub get 来安装依赖。

使用

  1. 导入包

    在你的 Dart 文件中导入 multiple_image_picker_widget

    import 'package:multiple_image_picker_widget/multiple_image_picker_widget.dart';
    
  2. 创建 MultipleImagePickerWidget

    你可以在你的 UI 中使用 MultipleImagePickerWidget 来选择多张图片。以下是一个简单的示例:

    class MyHomePage extends StatefulWidget {
      @override
      _MyHomePageState createState() => _MyHomePageState();
    }
    
    class _MyHomePageState extends State<MyHomePage> {
      List<Asset> selectedImages = [];
    
      @override
      Widget build(BuildContext context) {
        return Scaffold(
          appBar: AppBar(
            title: Text('Multiple Image Picker'),
          ),
          body: Column(
            children: [
              MultipleImagePickerWidget(
                maxImages: 5, // 最大可选图片数量
                onImagesSelected: (List<Asset> images) {
                  setState(() {
                    selectedImages = images;
                  });
                },
              ),
              Expanded(
                child: GridView.builder(
                  gridDelegate: SliverGridDelegateWithFixedCrossAxisCount(
                    crossAxisCount: 3,
                  ),
                  itemCount: selectedImages.length,
                  itemBuilder: (context, index) {
                    return AssetThumb(
                      asset: selectedImages[index],
                      width: 300,
                      height: 300,
                    );
                  },
                ),
              ),
            ],
          ),
        );
      }
    }
回到顶部