Flutter表情符号安全空值处理插件emojis_null_safe的使用

Flutter表情符号安全空值处理插件emojis_null_safe的使用

介绍

pub.dev github

这个插件将现有的表情符号库转换为null安全版本,使得在Dart项目中使用时更加安全。

🔥 表情符号插件适用于Dart 🔥 包含超过3300个表情符号
这个包包含了最新的Unicode 13表情符号(2020年)。

使用方法

0️⃣ 导入库
import 'package:emojis_null_safe/emojis.dart'; // 用于使用表情符号集合
import 'package:emojis_null_safe/emoji.dart'; // 用于使用表情符号工具
1️⃣ 使用表情符号
void main() {
  // 打印带表情符号的字符串
  print('I ${Emojis.greenHeart} ${Emojis.directHit}'); // I 💚 🎯

  // 获取一个表情符号
  Emoji smile = Emoji.byName('Grinning Face'); // 根据名称获取表情符号
  print('Emoji name      : ${smile.name}');
  // 输出: Emoji name is Grinning Face
  print('Emoji character : ${smile.char}');
  // 输出: Emoji character is '😀'
  print('Emoji category  : ${smile.emojiGroup}');
  // 输出: EmojiGroup.smileysEmotion 组的表情符号
  print('Emoji sub-group : ${smile.emojiSubgroup}');
  // 输出: EmojiSubgroup.faceSmiling 子组的表情符号

  // 根据字符获取表情符号
  Emoji womanBlond = Emoji.byChar(Emojis.womanBlondHair);
  print(womanBlond);

  // 列表中包含所有表情符号
  List<Emoji> emList = Emoji.all();
  print(emList);

  // 分解一个表情符号
  List<String> disassembled = Emoji.disassemble(Emojis.mechanic);
  print(disassembled); // ['🔧', '🧑']

  // 组合一些表情符号
  String assembled = Emoji.assemble([Emojis.man, Emojis.man, Emojis.girl, Emojis.boy]);
  print(assembled); // 👨‍👨‍👧‍👦️

  // 修改表情符号的肤色
  String blackThumbsUp = '👍';
  String whiteThumbsUp = Emoji.modify(blackThumbsUp, fitzpatrick.light);
  print(whiteThumbsUp); // 👍🏻

  // 调整女性警察的表情符号肤色
  String femaleCop = Emojis.womanPoliceOfficerMediumDarkSkinTone;
  String newFemaleCop = Emoji.stabilize(femaleCop);
  print('$femaleCop => $newFemaleCop'); // 👮🏾‍♀️ => 👮‍♀️

  // 性别中立
  String aCop = Emoji.stabilize(femaleCop, skin: false, gender: true);
  print('$femaleCop => $aCop'); // 👮🏾‍♀️ => 👮🏾,没有性别!仍然为中等深色皮肤

  // 根据关键词搜索表情符号
  final loveEmojis = Emoji.byKeyword('love');
  print(loveEmojis);
  // 输出: (🥰, 😍, 😘, 😚, 😙, 🤗, 😻, 😽, 💋, 💌, 💘, 💝, 💖, 💗, 💓, 💞, 💕, ..., 💄, ♾)

  // 根据类别搜索表情符号
  final foodCategory = Emoji.byGroup(EmojiGroup.foodDrink);
  print(foodCategory);
  // 输出: (🍇, 🍈, 🍉, 🍊, 🍋, 🍌, 🍍, 🥭, 🍎, 🍏, 🍐, 🍑, 🍒, 🍓, 🥝, 🍅, 🥥, 🥑, ...)

  // 根据子类别搜索表情符号
  Iterable<Emoji> moneySubgroupEmojis = Emoji.bySubgroup(EmojiSubgroup.money);
  print(moneySubgroupEmojis);
  // 输出: (💰, 💴, 💵, 💶, 💷, 💸, 💳, 🧾, 💹)
}

更多关于Flutter表情符号安全空值处理插件emojis_null_safe的使用的实战教程也可以访问 https://www.itying.com/category-92-b0.html

1 回复

更多关于Flutter表情符号安全空值处理插件emojis_null_safe的使用的实战系列教程也可以访问 https://www.itying.com/category-92-b0.html


当然,以下是一个关于如何在Flutter项目中使用emojis_null_safe插件来处理表情符号和安全空值的示例代码。

首先,确保你已经在pubspec.yaml文件中添加了emojis_null_safe依赖:

dependencies:
  flutter:
    sdk: flutter
  emojis_null_safe: ^最新版本号  # 请替换为实际的最新版本号

然后,运行flutter pub get来获取依赖包。

接下来,在你的Flutter应用中,你可以按照以下方式使用emojis_null_safe插件:

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

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

class MyApp extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    return MaterialApp(
      title: 'Flutter Demo',
      theme: ThemeData(
        primarySwatch: Colors.blue,
      ),
      home: MyHomePage(),
    );
  }
}

class MyHomePage extends StatefulWidget {
  @override
  _MyHomePageState createState() => _MyHomePageState();
}

class _MyHomePageState extends State<MyHomePage> {
  String? userInput;

  @override
  Widget build(BuildContext context) {
    return Scaffold(
      appBar: AppBar(
        title: Text('Emojis Null Safe Demo'),
      ),
      body: Padding(
        padding: const EdgeInsets.all(16.0),
        child: Column(
          crossAxisAlignment: CrossAxisAlignment.start,
          children: [
            TextField(
              decoration: InputDecoration(
                labelText: 'Enter text with emojis',
              ),
              onChanged: (value) {
                setState(() {
                  userInput = value;
                });
              },
            ),
            SizedBox(height: 16),
            Text(
              'Processed Text:',
              style: TextStyle(fontSize: 18, fontWeight: FontWeight.bold),
            ),
            SizedBox(height: 8),
            // 使用 EmojisNullSafe 类来处理用户输入中的表情符号和空值
            Text(
              EmojisNullSafe.process(userInput ?? ''),
              style: TextStyle(fontSize: 16),
            ),
          ],
        ),
      ),
    );
  }
}

在这个示例中,我们创建了一个简单的Flutter应用,其中包含一个TextField用于用户输入,以及一个Text小部件用于显示处理后的文本。我们使用EmojisNullSafe.process方法来处理用户输入中的表情符号和空值。如果用户输入为空,我们传递一个空字符串以避免空指针异常。

EmojisNullSafe.process方法的具体实现细节和功能可能依赖于emojis_null_safe插件的具体版本,但基本用法通常类似于上述示例。

请注意,emojis_null_safe插件的具体功能和API可能会随着版本的更新而变化,因此建议查阅最新的官方文档以获取最准确的信息。

回到顶部