ITADN
Turtlepaw/flutter_emoji_feedback
Turtlepaw/flutter_emoji_feedback · 文件
文件最后提交记录最后更新时间
README.md

flutter_emoji_feedback

pub package GitHub CI

A fully customizable widget to receive feedback from your users. Useful to get the user's mood, evaluate their experience, and more!

📺 What's new?

You can now use animated lottie files (json files only) for emoji presets, or the provided notoAnimatedEmojis preset. (see #3)

🚀 Getting started

Install from pub

flutter pub add flutter_emoji_feedback

📔 Usage

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
);

Parameters

Parameter nameDescriptionType
onChangeWaitForAnimationIf true, the emoji's animation will finish before calling #onChangebool
initialRatingSets the initial rating, if null, there will be no initial ratingint?
tapScaleThe scale for when the user holds down the emoji, set to inactiveElementScale for nonedouble
animDurationDuration of the animationDuration
curveCurve of the animationCurve
inactiveElementScaleScale of the inactive elementdouble
onChangedFunction called when an item is selected. Values goes from 1 to preset.lengthValueChanged<int?>?
emojiPresetList of emojis. Available presets: classicEmojiPreset, flatEmojiPreset, threeDEmojiPreset, notoAnimatedEmojis, notoEmojis. You can create your own presets, see Defining Presets.EmojiPreset
presetBuilderCustom emoji widget builderEmojiBuilder?
showLabelWhether the label should be displayed or notbool
labelTextStyleStyle of the emoji labelTextStyle?
customLabelsDefine your custom labels. Useful if you wish to use the predefined emojis with custom labelsList<String>?
inactiveElementBlendColorCustom blend color for inactive elementsColor?
spaceBetweenItemsSpace between itemsdouble
elementSizeSize of emoji elementsdouble?
labelPaddingLabel paddingEdgeInsetsGeometry
enableFeedbackEnable haptic feedbackbool
minRatingMinimum ratingint
maxRatingMaximum ratingint
onChangeWaitForAnimationIf true, the onChange callback will be called after the animation is completedbool

🎨 Defining presets

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,
  ),
]);

📝 License

This project is licensed under the MIT License - see the LICENSE file for details

📄 Changelog

See CHANGELOG.md for details.

📄 Contributing

Contributions are what make the open source community such an amazing place to learn, inspire, and create. Any contributions you make are greatly appreciated.

  1. Fork the Project
  2. Create your Feature Branch (git checkout -b feature/AmazingFeature)
  3. Commit your Changes (git commit -m 'Add some AmazingFeature')
  4. Push to the Branch (git push origin feature/AmazingFeature)
  5. Open a Pull Request

📄 Contributors

📄 Acknowledgments

Attribution

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.

If you find this project useful, you can sponsor me.

Or you can

Buy Me A Coffee