[Widget]emoji_picker_flutterを使って、簡単に絵文字を選べるようにする

動作環境: Flutter 2.8.1 Dart 2.15.1
LINEでこのページを共有するTwitterでこのページを共有するこのページをはてなブックマークに追加

emoji_picker_flutterのパッケージを使うと、テキストを入力するときなどに絵文字を簡単に選択できるようになります。
以下は絵文字を選択すると、Textの中身として表示するサンプルです。

lib/main.dart
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が出現します!!

最近使用した絵文字が表示される機能が付いているのもいいですね!