v1.0.3flutter_emoji_feedback
사용자로부터 피드백을 받기 위한 완전히 사용자 정의 가능한 위젯입니다. 사용자의 기분을 파악하거나 경험을 평가하는 데 유용합니다!
사용자로부터 피드백을 받기 위한 완전히 사용자 정의 가능한 위젯입니다. 사용자의 기분이나 경험 평가(그 이상!)에 사용할 수 있습니다.
{"sdk":"flutter"}^1.18.0^2.0.16^3.2.0{"sdk":"flutter"}^5.0.0^2.4.9^5.8.0아래는 영문 원문 스냅샷입니다. 최신 내용은 GitHub에서 확인하세요.
A fully customizable widget to receive feedback from your users. Useful to get the user's mood, evaluate their experience, and more!
You can now use animated lottie files (json files only) for emoji presets, or the provided notoAnimatedEmojis preset. (see #3)
flutter pub add flutter_emoji_feedback
Import flutter_emoji_feedback:
import 'package:flutter_emoji_feedback/flutter_emoji_feedback.dart';
EmojiFeedback(
initialRating: 4, // Set to null (default) for no initial rating
animDuration: const Duration(milliseconds: 300), // Duration of the animation
curve: Curves.bounceIn, // Curve of the animation
inactiveElementScale: .5, // Scale of the inactive element
onChanged: (value) {
// Callback when the user change the value of the emoji
},
onChangeWaitForAnimation: true, // Wait for the animation of the emoji to complete before calling `#onChanged`
// Other parameters
);
| Parameter name | Description | Type |
|---|---|---|
onChangeWaitForAnimation |
If true, the emoji's animation will finish before calling #onChange |
bool |
initialRating |
Sets the initial rating, if null, there will be no initial rating | int? |
tapScale |
The scale for when the user holds down the emoji, set to inactiveElementScale for none |
double |
animDuration |
Duration of the animation | Duration |
curve |
Curve of the animation | Curve |
inactiveElementScale |
Scale of the inactive element | double |
onChanged |
Function called when an item is selected. Values goes from 1 to preset.length |
ValueChanged<int?>? |
emojiPreset |
List of emojis. Available presets: classicEmojiPreset, flatEmojiPreset, threeDEmojiPreset, notoAnimatedEmojis, notoEmojis. You can create your own presets, see Defining Presets. |
EmojiPreset |
presetBuilder |
Custom emoji widget builder | EmojiBuilder? |
showLabel |
Whether the label should be displayed or not | bool |
labelTextStyle |
Style of the emoji label | TextStyle? |
customLabels |
Define your custom labels. Useful if you wish to use the predefined emojis with custom labels | List<String>? |
inactiveElementBlendColor |
Custom blend color for inactive elements | Color? |
spaceBetweenItems |
Space between items | double |
elementSize |
Size of emoji elements | double? |
labelPadding |
Label padding | EdgeInsetsGeometry |
enableFeedback |
Enable haptic feedback | bool |
minRating |
Minimum rating | int |
maxRating |
Maximum rating | int |
onChangeWaitForAnimation |
If true, the onChange callback will be called after the animation is completed | bool |
You can easily create presets using the StaticEmojiPreset and AnimatedEmojiPreset, which hold the emojis.
// Defining a static emoji preset using SVG files
// Replace the `image` with your SVG file path
const myStaticEmojiPreset = StaticEmojiPreset([
StaticEmoji(
image: 'assets/images/emoji1.svg',
value: 1,
),
StaticEmoji(
image: 'assets/images/emoji2.svg',
value: 2,
),
StaticEmoji(
image: 'assets/images/emoji3.svg',
value: 3,
),
StaticEmoji(
image: 'assets/images/emoji4.svg',
value: 4,
),
StaticEmoji(
image: 'assets/images/emoji5.svg',
value: 5,
),
]);
// Defining an animated emoji preset using Lottie files
// Replace the `animation` with the path to your Lottie file
const myAnimatedEmojiPreset = AnimatedEmojiPreset([
AnimatedEmoji(
animation: 'assets/animations/emoji1.json',
value: 1
),
AnimatedEmoji(
animation: 'assets/animations/emoji2.json',
value: 2
),
AnimatedEmoji(
animation: 'assets/animations/emoji3.json',
value: 3
),
AnimatedEmoji(
animation: 'assets/animations/emoji4.json',
value: 4
),
AnimatedEmoji(
animation: 'assets/animations/emoji5.json',
value: 5,
),
]);
This project is licensed under the MIT License - see the LICENSE file for details
See CHANGELOG.md for details.
Contributions are what make the open source community such an amazing place to learn, inspire, and create. Any contributions you make are greatly appreciated.
git checkout -b feature/AmazingFeature)git commit -m 'Add some AmazingFeature')git push origin feature/AmazingFeature)This project uses Animated Noto Emoji, which is licensed under the Creative Commons Attribution 4.0 International License (CC BY 4.0).
© Google LLC. Licensed under CC BY 4.0.
https://github.com/stevenosse/flutter_emoji_feedback/blob/main/assets/noto_awesome.svg?raw=true https://github.com/stevenosse/flutter_emoji_feedback/blob/main/assets/noto_good.svg?raw=true https://github.com/stevenosse/flutter_emoji_feedback/blob/main/assets/noto_neutral.svg?raw=true https://github.com/stevenosse/flutter_emoji_feedback/blob/main/assets/noto_bad.svg?raw=true https://github.com/stevenosse/flutter_emoji_feedback/blob/main/assets/noto_terrible.svg?raw=true
If you find this project useful, you can sponsor me.
Or you can