Flutter表情选择器插件flutter_emoji_picker的使用
Flutter表情选择器插件flutter_emoji_picker的使用
Flutter Emoji picker 使得在不同平台上轻松选择表情符号变得更加简单。
使用
导入包
import 'package:flutter_emoji_picker/flutter_emoji_picker.dart';
包装你的MaterialApp
以使用EmojiProvider
EmojiProvider(
child: MaterialApp(
title: 'Flutter Demo',
home: Scaffold(
body: ...yourcode
),
),
);
示例
我们可以使用三种方式来选择或显示表情选择器:
对话框选项
EmojiButton(
emojiPickerViewConfiguration: EmojiPickerViewConfiguration(
viewType: ViewType.dialog,
onEmojiSelected: (String emoji) {
print('表情选择: $emoji');
},
),
child: const Text('点击我'),
),
底部弹出框选项
EmojiButton(
emojiPickerViewConfiguration: EmojiPickerViewConfiguration(
viewType: ViewType.bottomsheet,
onEmojiSelected: (String emoji) {
print('表情选择: $emoji');
},
),
child: const Text('点击我'),
),
屏幕选项
此选项为选择表情符号提供了全屏界面。
IconButton(
onPressed: () {
Navigator.push(
context,
MaterialPageRoute(
builder: (ctx) {
return EmojiListView(
currentHoveredEmoji: ValueNotifier(''), // 可选,仅在非移动平台使用
contentPadding: const EdgeInsets.only(left: 20, right: 40),
appBar: SliverAppBar(
leading: IconButton(
icon: const Icon(Icons.arrow_back),
onPressed: () {
Navigator.pop(ctx);
},
),
),
configuration: EmojiListViewConfiguration(onEmojiSelected: (String emoji) {
print('表情选择: $emoji');
}),
searchBarConfiguration: EmojiPickerSearchFieldConfiguration(showField: false),
);
},
),
);
},
icon: const Text('😀'),
)
社区支持
如果您有任何建议或问题,请随时在此处提交一个 issue。
如果您希望贡献,请随时创建一个 PR。
以下是一个完整的示例代码,展示了如何在应用中集成表情选择器。
完整示例代码
import 'package:flutter/cupertino.dart';
import 'package:flutter/material.dart';
import 'package:flutter_emoji_picker/flutter_emoji_picker.dart';
void main() {
runApp(const MyApp());
}
class MyApp extends StatelessWidget {
const MyApp({super.key});
// 这个小部件是你的应用的根节点。
[@override](/user/override)
Widget build(BuildContext context) {
return const EmojiProvider(
child: MaterialApp(
title: 'Flutter Demo',
themeMode: ThemeMode.dark,
home: MyHomePage(title: '表情选择器'),
),
);
}
}
class MyHomePage extends StatefulWidget {
const MyHomePage({super.key, required this.title});
final String title;
[@override](/user/override)
State<MyHomePage> createState() => _MyHomePageState();
}
class _MyHomePageState extends State<MyHomePage> {
final ValueNotifier<String?> _currentHoverNotifier = ValueNotifier('');
[@override](/user/override)
void dispose() {
_currentHoverNotifier.dispose();
super.dispose();
}
[@override](/user/override)
Widget build(BuildContext context) {
return Scaffold(
appBar: AppBar(
backgroundColor: Theme.of(context).colorScheme.inversePrimary,
title: Text(widget.title),
),
body: SingleChildScrollView(
child: Column(
children: <Widget>[
Row(
children: [
Container(
alignment: Alignment.center,
child: EmojiButton(
emojiPickerViewConfiguration: EmojiPickerViewConfiguration(
viewType: ViewType.bottomsheet,
onEmojiSelected: (emoji) {},
),
child: const Icon(
CupertinoIcons.arrow_down,
),
),
),
const SizedBox(width: 10),
Container(
alignment: Alignment.center,
child: EmojiButton(
emojiPickerViewConfiguration: EmojiPickerViewConfiguration(
viewType: ViewType.dialog,
onEmojiSelected: (emoji) {},
),
child: const Icon(
Icons.emoji_flags,
),
),
),
],
),
],
),
),
);
}
}
更多关于Flutter表情选择器插件flutter_emoji_picker的使用的实战教程也可以访问 https://www.itying.com/category-92-b0.html
更多关于Flutter表情选择器插件flutter_emoji_picker的使用的实战系列教程也可以访问 https://www.itying.com/category-92-b0.html
flutter_emoji_picker
是一个用于在 Flutter 应用中集成表情选择器的插件。它允许用户从表情库中选择表情,并可以轻松地将选中的表情插入到文本中。以下是如何使用 flutter_emoji_picker
的步骤:
1. 添加依赖
首先,在你的 pubspec.yaml
文件中添加 flutter_emoji_picker
依赖:
dependencies:
flutter:
sdk: flutter
flutter_emoji_picker: ^0.1.0 # 请检查最新版本
然后运行 flutter pub get
来获取依赖。
2. 导入包
在你的 Dart 文件中导入 flutter_emoji_picker
包:
import 'package:flutter_emoji_picker/flutter_emoji_picker.dart';
3. 使用 EmojiPicker
你可以使用 EmojiPicker
小部件来显示表情选择器。以下是一个简单的示例,展示如何在点击按钮时显示表情选择器,并将选中的表情插入到文本字段中。
import 'package:flutter/material.dart';
import 'package:flutter_emoji_picker/flutter_emoji_picker.dart';
class EmojiPickerExample extends StatefulWidget {
@override
_EmojiPickerExampleState createState() => _EmojiPickerExampleState();
}
class _EmojiPickerExampleState extends State<EmojiPickerExample> {
TextEditingController _controller = TextEditingController();
bool _showEmojiPicker = false;
void _onEmojiSelected(Emoji emoji) {
_controller.text = _controller.text + emoji.emoji;
}
void _toggleEmojiPicker() {
setState(() {
_showEmojiPicker = !_showEmojiPicker;
});
}
@override
Widget build(BuildContext context) {
return Scaffold(
appBar: AppBar(
title: Text('Emoji Picker Example'),
),
body: Column(
children: [
Expanded(
child: Padding(
padding: const EdgeInsets.all(8.0),
child: TextField(
controller: _controller,
decoration: InputDecoration(
border: OutlineInputBorder(),
labelText: 'Enter your text',
),
maxLines: null,
),
),
),
if (_showEmojiPicker)
EmojiPicker(
onEmojiSelected: _onEmojiSelected,
),
],
),
floatingActionButton: FloatingActionButton(
onPressed: _toggleEmojiPicker,
child: Icon(Icons.emoji_emotions),
),
);
}
}
void main() {
runApp(MaterialApp(
home: EmojiPickerExample(),
));
}
4. 运行应用
现在你可以运行你的 Flutter 应用,点击右下角的浮动按钮来显示或隐藏表情选择器。选择一个表情后,它将自动插入到文本字段中。
5. 自定义 EmojiPicker
EmojiPicker
小部件提供了一些可选的参数,允许你自定义其外观和行为。例如,你可以更改表情的行数、列数、背景颜色等。
EmojiPicker(
onEmojiSelected: _onEmojiSelected,
rows: 4,
columns: 7,
backgroundColor: Colors.grey[200],
buttonColor: Colors.blue,
indicatorColor: Colors.blueAccent,
);