emoji_picker_flutterのパッケージを使うと、テキストを入力するときなどに絵文字を簡単に選択できるようになります。
以下は絵文字を選択すると、Textの中身として表示するサンプルです。
import 'dart:io';import 'package:emoji_picker_flutter/emoji_picker_flutter.dart';import 'package:flutter/material.dart';void main() { runApp(const MyApp());}class MyApp extends StatefulWidget { const MyApp({Key? key}) : super(key: key); @override _MyAppState createState() => _MyAppState();}class _MyAppState extends State<MyApp> { String emojiLabel = '絵文字がここに表示されます'; _onEmojiSelected(Emoji emoji) { setState(() { emojiLabel = "${emoji.name} ${emoji.emoji}"; }); } _onBackspacePressed() { setState(() { emojiLabel = '絵文字がここに表示されます'; }); } @override Widget build(BuildContext context) { return MaterialApp( home: Scaffold( backgroundColor: Colors.white, appBar: AppBar( title: const Text('絵文字を選択する'), ), body: Center( child: Column( mainAxisAlignment: MainAxisAlignment.center, children: [ Text( emojiLabel, style: const TextStyle(fontSize: 30), ), const SizedBox( height: 40, ), Builder(builder: (context) { return ElevatedButton( onPressed: () { showModalBottomSheet( context: context, isScrollControlled: false, enableDrag: false, builder: (BuildContext context) { return SizedBox( height: 400, child: EmojiPicker( onEmojiSelected: (Category category, Emoji emoji) { _onEmojiSelected(emoji); Navigator.pop(context); }, onBackspacePressed: _onBackspacePressed, config: Config( columns: 7, emojiSizeMax: 32 * (Platform.isIOS ? 1.30 : 1.0), verticalSpacing: 0, horizontalSpacing: 0, initCategory: Category.RECENT, bgColor: const Color(0xFFF2F2F2), indicatorColor: Colors.blue, iconColor: Colors.grey, iconColorSelected: Colors.blue, progressIndicatorColor: Colors.blue, backspaceColor: Colors.blue, skinToneDialogBgColor: Colors.white, skinToneIndicatorColor: Colors.grey, enableSkinTones: true, showRecentsTab: true, recentsLimit: 28, noRecentsText: 'No Recents', noRecentsStyle: const TextStyle( fontSize: 20, color: Colors.black26), tabIndicatorAnimDuration: kTabScrollDuration, categoryIcons: const CategoryIcons(), buttonMode: ButtonMode.MATERIAL)), ); }, backgroundColor: const Color(0x00000000), ); }, child: const Padding( padding: EdgeInsets.all(8.0), child: Text( '絵文字を選択', style: TextStyle(fontSize: 30), ), )); }) ], ), ), ), ); }}
以下のように簡単に絵文字を選択するためのUIを組み込むことが可能です!!
「絵文字を選択」を押すと・・・
emoji pickerが出現します!!
最近使用した絵文字が表示される機能が付いているのもいいですね!