Flutter表情评分插件emoji_rating_bar的使用
Flutter表情评分插件emoji_rating_bar的使用
Animated feedback and mood rating bar
emoji_rating_bar
是一个平滑动画评分条插件,适用于客户和服务反馈。它配备了可定制的表情和情绪条。您可以创建独特的评分条,使用自定义表情、文本、评分、大小和动画。用户可以轻松更改未选中项的颜色,从而获得更好的体验。
Usage
在您的 pubspec.yaml
文件中添加以下依赖:
dependencies:
emoji_rating_bar: ^<latest-version>
Feedback Rating Bar
EmojiRatingBar()
Mood Rating Bar
EmojiRatingBar(
ratingBarType: RatingBarType.mood
)
Customise Rating Bar
您可以通过向小部件提供额外属性来自定义评分条。例如:
EmojiRatingBar(
rating: 2,
onRateChange: (rating) {
print(rating);
},
isReadOnly: false,
spacing: 15,
size: 40,
selectedSize: 60,
isShowTitle: true,
isShowDivider: true,
titleStyle: TextStyle(
color: Colors.grey,
fontSize: 8,
),
selectedTitleStyle: TextStyle(
color: Colors.black,
fontSize: 12,
),
animationDuration: Duration(milliseconds: 500),
animationCurve: Curves.easeInOut,
ratingBarType: RatingBarType.feedback,
applyColorFilter: true
)
Create Custom list
要创建包含自定义图像的自定义表情列表,可以使用以下格式:
[
EmojiData(icStrong, "Strong", isPackageImg: true), // 如果使用包资产图像,必须将 isPackageImg 设置为 true
EmojiData(
"assets/ic_delighted.png", // 项目资产图像
"Delighted"
)
]
示例代码
以下是一个完整的示例代码,展示了如何在 Flutter 应用中使用 emoji_rating_bar
插件:
import 'package:emoji_rating_bar/emoji_rating_bar.dart';
import 'package:flutter/material.dart';
void main() {
runApp(const MyApp());
}
class MyApp extends StatefulWidget {
const MyApp({super.key});
@override
State<MyApp> createState() => _MyAppState();
}
class _MyAppState extends State<MyApp> {
@override
Widget build(BuildContext context) {
return MaterialApp(
home: Scaffold(
appBar: AppBar(
backgroundColor: Colors.orange,
title: const Text('Plugin example app'),
),
body: Center(
child: SingleChildScrollView(
child: Column(
children: [
const Text("How was the our service?"),
const SizedBox(height: 30),
const EmojiRatingBar(
rating: 3,
),
const SizedBox(height: 80),
const Text("How are you feeling?"),
const SizedBox(height: 30),
const EmojiRatingBar(
ratingBarType: RatingBarType.mood,
rating: 3,
),
const SizedBox(height: 80),
const Text("Customise your rating bar"),
const SizedBox(height: 30),
EmojiRatingBar(
rating: 2,
isShowTitle: false,
applyColorFilter: false,
onRateChange: (rating) {
debugPrint("Current rating $rating");
},
list: [
EmojiData(icStrong, "Strong", isPackageImg: true),
EmojiData(
"assets/ic_delighted.png",
"Delighted",
)
],
),
],
),
),
),
),
);
}
}
在这个示例中,我们创建了一个简单的 Flutter 应用,其中包括三个不同的 EmojiRatingBar
小部件:
- 服务反馈评分条
- 情绪反馈评分条
- 自定义评分条
每个评分条都可以根据需要进行自定义,以满足您的应用需求。
更多关于Flutter表情评分插件emoji_rating_bar的使用的实战教程也可以访问 https://www.itying.com/category-92-b0.html
更多关于Flutter表情评分插件emoji_rating_bar的使用的实战系列教程也可以访问 https://www.itying.com/category-92-b0.html
当然,以下是如何在Flutter项目中集成和使用emoji_rating_bar
插件的一个详细代码示例。emoji_rating_bar
是一个流行的Flutter插件,用于实现带有表情符号的评分条。
第一步:添加依赖
首先,在你的pubspec.yaml
文件中添加emoji_rating_bar
的依赖:
dependencies:
flutter:
sdk: flutter
emoji_rating_bar: ^latest_version # 请将latest_version替换为当前最新版本号
然后运行flutter pub get
来获取依赖。
第二步:导入包
在你的Dart文件中(例如main.dart
),导入emoji_rating_bar
包:
import 'package:emoji_rating_bar/emoji_rating_bar.dart';
import 'package:flutter/material.dart';
第三步:使用EmojiRatingBar
以下是一个简单的示例,展示如何在你的Flutter应用中使用EmojiRatingBar
:
void main() {
runApp(MyApp());
}
class MyApp extends StatelessWidget {
@override
Widget build(BuildContext context) {
return MaterialApp(
title: 'Flutter Emoji Rating Bar Demo',
theme: ThemeData(
primarySwatch: Colors.blue,
),
home: MyHomePage(),
);
}
}
class MyHomePage extends StatefulWidget {
@override
_MyHomePageState createState() => _MyHomePageState();
}
class _MyHomePageState extends State<MyHomePage> {
double _rating = 3.0;
void _onRatingChanged(double rating) {
setState(() {
_rating = rating;
});
}
@override
Widget build(BuildContext context) {
return Scaffold(
appBar: AppBar(
title: Text('Emoji Rating Bar Demo'),
),
body: Center(
child: Column(
mainAxisAlignment: MainAxisAlignment.center,
children: <Widget>[
EmojiRatingBar(
rating: _rating,
onRatingChange: _onRatingChanged,
emojiSize: 24,
numRatings: 5,
barBackgroundColor: Colors.grey[200]!,
barHeight: 40,
barPadding: EdgeInsets.symmetric(horizontal: 8),
itemSpacing: 8,
itemBuilder: (context, index) {
return Text(
'😊',
style: TextStyle(fontSize: 24),
);
},
),
SizedBox(height: 20),
Text(
'Current Rating: $_rating',
style: TextStyle(fontSize: 20),
),
],
),
),
);
}
}
代码解释
-
导入包:
import 'package:emoji_rating_bar/emoji_rating_bar.dart'; import 'package:flutter/material.dart';
-
定义主函数:
void main() { runApp(MyApp()); }
-
创建MyApp和MyHomePage类:
MyApp
是一个无状态的Widget,它设置了应用的主题和主页。MyHomePage
是一个有状态的Widget,它管理当前的评分。
-
评分更改回调:
void _onRatingChanged(double rating) { setState(() { _rating = rating; }); }
-
EmojiRatingBar组件:
rating
:当前的评分。onRatingChange
:评分更改时的回调。emojiSize
:表情符号的大小。numRatings
:评分的总数。barBackgroundColor
:评分条的背景颜色。barHeight
:评分条的高度。barPadding
:评分条的内边距。itemSpacing
:表情符号之间的间距。itemBuilder
:用于自定义每个表情符号的Widget。
-
显示当前评分:
Text( 'Current Rating: $_rating', style: TextStyle(fontSize: 20), ),
运行上述代码后,你将看到一个带有表情符号的评分条,以及当前评分的显示。你可以通过点击表情符号来更改评分,并且评分将实时更新。