Flutter邮件芯片组件插件chip_emails的使用

Flutter邮件芯片组件插件chip_emails的使用

特性

[alt text]

开始使用

在你的Flutter项目中,将依赖添加到pubspec.yaml文件中:

dependencies:
  ...
  chip_emails:

运行flutter pub get以获取该包。

使用方法

首先,你需要导入库:

import 'package:chip_emails/chip_emails.dart';

接下来,你可以使用EmailChips组件来构建和显示电子邮件芯片。以下是一个完整的示例代码:

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

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

class MyApp extends StatelessWidget {
  const MyApp({Key? key}) : super(key: key);

  // 这个小部件是你的应用的根。
  [@override](/user/override)
  Widget build(BuildContext context) {
    return MaterialApp(
      title: 'Email 包',
      theme: ThemeData(
        primarySwatch: Colors.blue,
      ),
      home: const MyHomePage(title: 'EmailChips'),
    );
  }
}

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

  // 这个小部件是你的应用的主页。它是有状态的,意味着它有一个状态对象(定义在下面),其中包含影响其外观的字段。
  // 这个类是状态的配置。它保存由父级(在这个例子中是App小部件)提供的值(在这种情况下是标题)并用于状态的构建方法。Widget子类中的字段总是标记为“final”。

  final String title;

  [@override](/user/override)
  State<MyHomePage> createState() => _MyHomePageState();
}

class _MyHomePageState extends State<MyHomePage> {
  List<String> email_list = [];
  List<String> getemail_list = [];
  TextEditingController emailcontroller = TextEditingController();

  [@override](/user/override)
  Widget build(BuildContext context) {
    // 每次调用setState时,此方法都会被重新运行,例如通过上面的_incrementCounter方法。
    //
    // Flutter框架已被优化为使重建方法快速运行,因此您可以只需重建任何需要更新的东西,而不是逐个更改小部件实例。
    return Scaffold(
      appBar: AppBar(
        // 这里我们从MyHomePage对象中获取值,该对象是由App.build方法创建的,并将其用于设置我们的appbar标题。
        title: Text(widget.title),
      ),
      body: Center(
        // Center是一个布局小部件。它接受一个子元素并将其定位在其父元素的中间。
        child: Column(
          mainAxisAlignment: MainAxisAlignment.center,
          crossAxisAlignment: CrossAxisAlignment.center,
          children: [
            EmailChips(
              press: () {
                setState(() {
                  getemail_list = email_list;
                });
              },
              emails: email_list,
              backgroundcolor: Colors.blue,
              editingController: emailcontroller,
            ),
            SizedBox(
              height: 30,
            ),
            Center(
              child: Container(
                height: 100,
                width: 200,
                child: ListView.builder(
                    itemCount: getemail_list.length,
                    itemBuilder: (BuildContext context, int i) {
                      return Text(getemail_list[i].toString());
                    }),
              ),
            )
          ],
        ),
      ),
      // 这个尾随逗号使自动格式化更美观。
    );
  }
}

更多关于Flutter邮件芯片组件插件chip_emails的使用的实战教程也可以访问 https://www.itying.com/category-92-b0.html

1 回复

更多关于Flutter邮件芯片组件插件chip_emails的使用的实战系列教程也可以访问 https://www.itying.com/category-92-b0.html


chip_emails 是一个用于 Flutter 的应用插件,它允许你在应用中创建类似于电子邮件地址的芯片(Chip)组件。这些芯片通常用于显示可选的电子邮件地址或联系人,用户可以轻松添加、删除或编辑这些芯片。

以下是如何在 Flutter 项目中使用 chip_emails 插件的步骤:

1. 添加依赖

首先,在你的 pubspec.yaml 文件中添加 chip_emails 插件的依赖:

dependencies:
  flutter:
    sdk: flutter
  chip_emails: ^1.0.0  # 请确保使用最新版本

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

2. 导入包

在你的 Dart 文件中导入 chip_emails 包:

import 'package:chip_emails/chip_emails.dart';

3. 使用 ChipEmails 组件

你可以使用 ChipEmails 组件来创建电子邮件芯片。以下是一个简单的例子:

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

class EmailChipExample extends StatefulWidget {
  [@override](/user/override)
  _EmailChipExampleState createState() => _EmailChipExampleState();
}

class _EmailChipExampleState extends State<EmailChipExample> {
  List<String> emails = [];

  [@override](/user/override)
  Widget build(BuildContext context) {
    return Scaffold(
      appBar: AppBar(
        title: Text('Email Chip Example'),
      ),
      body: Padding(
        padding: const EdgeInsets.all(16.0),
        child: Column(
          children: [
            ChipEmails(
              initialEmails: emails,
              onChanged: (updatedEmails) {
                setState(() {
                  emails = updatedEmails;
                });
              },
              decoration: InputDecoration(
                labelText: 'Enter Emails',
                border: OutlineInputBorder(),
              ),
            ),
            SizedBox(height: 20),
            Text('Selected Emails: ${emails.join(", ")}'),
          ],
        ),
      ),
    );
  }
}

void main() {
  runApp(MaterialApp(
    home: EmailChipExample(),
  ));
}
回到顶部