Quick Interact
Quick Interact is a Flutter package inspired by the Instagram quick send feature. It provides a simple and intuitive API to create interactive widgets with ease, allowing you to show quick interactions for any widget with various configurations.
Features
- Display quick interactions for any widget
- Customize the interaction with various configurations
- Easy to use and integrate into any Flutter project
Installation
To use this package, add quick_interact
as a dependency in your pubspec.yaml
file.
dependencies: quick_interact: ^latest_version
Or you can install it from the command line:
bash
flutter pub add quick_interact
Usage
Here is a basic example of using Quick Interact:
Widget iconQuickReaction({required QuickInteractConfig config}) { return Center( child: QuickInteractions( quickInteractionWidgets: const [ Icon(Icons.thumb_up), Icon(Icons.thumb_down), Icon(Icons.favorite), Icon(Icons.bookmark), ], onQuickInteractCompleted: (index) { print('Quick interaction selected: $index'); }, config: config, child: const Icon(Icons.send), ), ); }
Example User Avatar Usage
Widget userAvatarQuickReaction({required QuickInteractConfig config}) { return Center( child: QuickInteractions( quickInteractionWidgets: const [ CircleAvatar( radius: 15, backgroundImage: NetworkImage('https://randomuser.me/api/portraits/men/1.jpg'), ), CircleAvatar( radius: 15, backgroundImage: NetworkImage('https://randomuser.me/api/portraits/women/2.jpg'), ), CircleAvatar( radius: 15, backgroundImage: NetworkImage('https://randomuser.me/api/portraits/men/3.jpg'), ), CircleAvatar( radius: 15, backgroundImage: NetworkImage('https://randomuser.me/api/portraits/women/4.jpg'), ), ], onQuickInteractCompleted: (index) { print('Quick interaction selected: $index'); }, animate: true, config: QuickInteractConfig(), showToolTipDelay: const Duration(milliseconds: 300), child: const Icon(Icons.send), ), ); }
API
QuickInteractions
QuickInteractions is a widget that provides quick interaction functionality. It uses long press gesture to trigger a set of quick interaction widgets.
Attributes:
quickInteractionWidgets
: The list of widgets for quick interactions.config
: The configuration model for QuickInteractBuilder and QuickInteract classes.onQuickInteractCompleted
: The callback function when a quick interaction is completed.child
: The child widget.onTap
: The callback function when the widget is tapped.toolTip
: The tooltip widget.disable
: A flag to disable the quick interactions.animate
: A flag to enable animation for the quick interactions.showToolTipDelay
: The delay before showing the tooltip.
QuickInteractConfig
QuickInteractConfig
is a configuration model for QuickInteractBuilder
and QuickInteract
classes. It allows you to customize the behavior and appearance of the quick interaction widgets. Parameters
widgetSize
: Size of the quick interaction widgets container. Default is 35.widgetPadding
: Padding between quick interaction widgets. Default is 4.transitionAnimationEndOffset
: Offset animations end value. Default is Offset(0, -1).scaleAnimationEndScale
: Scale animations end value. Default is 1.5.cursorAnimationDuration
: Duration of the cursor animation. Default is Duration(milliseconds: 300).containerColor
: Color of the quick interaction container. No default value.containerHeight
: Height of the quick interaction container. Default is 40.containerBorderRadius
: Border radius of the quick interaction container. Default is BorderRadius.all( Radius.circular(30)).containerAnimationDuration
: Duration of the container animation. Default is Duration(milliseconds: 300).containerAnimationCurve
: Curve of the container animation. Default is Curves.linearToEaseOut.widgetAnimationCurve
: Curve of the widget animation. Default is Curves.linearToEaseOut.elevation
: Elevation of the quick interaction container. Default is 5. Named ConstructorsQuickInteractConfig()
: Creates a new instance ofQuickInteractConfig
with default values.QuickInteractConfig.onlyTransition()
: Creates a new instance ofQuickInteractConfig
with only transition offset -2. The default elevation is set to 5.QuickInteractConfig.onlyScale()
: Creates a new instance ofQuickInteractConfig
with only scale 2. The default elevation is set to 5.
Examples
You can find more examples and different usages in the example main.dart.
Upcoming Features
- Displaying quick interaction in a safe area
- Providing a builder constructor to change state when active with boolean
- For more information, please refer to the API documentation.