搜尋套件、儲存庫與 APP 分類

GitHub 儲存庫stevenosse/flutter_emoji_feedback

flutter_emoji_feedback

一個完全可自訂的組件,用於接收使用者的反饋。可用來取得使用者的心情或評估體驗(以及更多!)

flutter_emoji_feedback 專案封面
星標
7
分支
5
最近推送(UTC)
2025年3月5日
專案狀態
未封存

原始 README

以下為英文專案原文快照,最新內容請造訪 GitHub。

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 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
🎨 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.

Sponsor

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

Or you can

Buy Me A Coffee

Steve GitHub avatar
GitHub 作者

Steve ↗

Octopus dev working on @pocketsync and other stuff

Nantes, France
語言DartC++CMakeSwiftCHTMLNixKotlinObjective-C

分類

此儲存庫發佈的套件

使用的依賴

依賴清單 8 項

如何選擇適合專案的儲存庫?

先依使用情境篩選,再比較專案活躍情況,最後到原始儲存庫確認使用要求。

  1. 透過儲存庫名稱、作者或描述搜尋,再依技術分類縮小範圍。
  2. 綜合星標、分支與最近推送比較專案;星標反映社群關注,不保證品質。
  3. 使用前在 GitHub 確認 README、授權條款與 Issues。

來源與維護

“A repository is the most basic element of GitHub.”

GitHub Docs — About repositories ↗