smart_dialogs_plus 0.0.5
smart_dialogs_plus: ^0.0.5 copied to clipboard
A Flutter package for smart animated dialogs, alerts, snackbars, and loaders with controller and Lottie support.
Smart Dialogs Plus #
Smart Dialogs Plus is a complete Flutter UI feedback toolkit that combines animated dialogs, alerts, snackbars, pull-to-refresh indicators, and infinite scroll loaders. Built for modern apps that value clean, intuitive, and reactive feedback for every user interaction.
✨ Features #
- ✅
SmartProgressDialogwith animations for loading, success, failure, and warning states - ⚠️
SmartAlertDialogfor confirmations, info, and warnings - 🍞
SmartSnackBarfor toast-like user feedback with flexible placement - 🔁
SmartRefreshIndicatorto wrap scroll views with pull-to-refresh - 📆
SmartListLoaderto append a loader during infinite scroll - 🎮
SmartProgressControllerto manage dialog state transitions programmatically - 🎨 Full customization of color, message, placement, and icons
🚀 Installation #
Add to your pubspec.yaml:
dependencies:
smart_dialogs_plus: ^0.0.5
Import into your Dart files:
import 'package:smart_dialogs_plus/smart_dialogs_plus.dart';
🧠 Usage #
1. Show Progress Dialog with Controller #
final controller = SmartProgressController();
controller.attach(context);
controller.showLoading("Please wait...");
await Future.delayed(Duration(seconds: 2));
controller.showSuccess("All done!");
2. Inline Progress Dialog #
SmartAlertDialog.show(
context, // Build context
title: "Alert Title", // Custom title
titleFontSize: 28, // Custom title font size
message: "Alert message goes here.", // Custom message
messageFontSize: 24, // Custom message font size
type: SmartAlertType.warning, // Alert type: warning, error, success, info
loopAnimation: false, // Enable/disable looping animation
onConfirm: () {
// Handle confirmation
},
alertDialogTheme: SmartAlertDialogTheme( // Custom theme for the alert dialog
backgroundColor: Colors.white, // Background color
titleTextColor: Colors.black, // Title text color
messageTextColor: Colors.grey, // Message text color
buttonsBorderRadius: BorderRadius.circular(8), // Button border radius
confirmButtonTextColor: Colors.white, // Confirm button text color
confirmButtonBackgroundColor: Colors.blue, // Confirm button background color
cancelButtonTextColor: Colors.white, // Cancel button text color
cancelButtonBackgroundColor: Colors.red, // Cancel button background color
}
);
3. Show Alert Dialog #
SmartAlertDialog.showDialog(
context, { // Build context
title: "Alert Title", // Custom title
titleFontSize: 28, // Custom title font size
message: "This is an alert message.", // Custom message
messageFontSize: 24, // Custom message font size
type: SmartAlertType.info, // Alert type: info, warning, error, success
onConfirm: () { // Optional callback for confirm action
// Handle confirmation
},
onCancel: () { // Optional callback for cancel action
// Handle cancellation
},
confirmText: "OK", // Custom button texts
cancelText: "Cancel", // Custom button texts
showCancel: true, // Show cancel button
color: Colors.blue, // Custom color for the dialog
barrierDismissible: true, // Allow dismissing by tapping outside
animateAsset: true, // Show animated asset
loopAnimation: true, // Loop the animation
);
4. Show Custom Snackbar #
SmartSnackBar.show(
context, message, {
title: "Hello Title!",
type: SmartSnackBarType.success,
duration: SnackBarDuration.short, // Duration of the snackbar: short, long, or indefinite
backgroundColor: Colors.green, // Custom background color
behavior: SnackBarBehavior.floating, // Floating or fixed position
action: SnackBarAction( // Optional action button
label: "Undo",
onPressed: () {
// Handle action
},
),
onClose: () { // Optional callback when snackbar is closed
// Handle close
},
position: SnackBarPosition.bottom, // Position of the snackbar: top or bottom
showCloseIcon: false, // Show close icon
closeIconColor: Colors.white, // Color of the close icon
);
5. Load More in Infinite Scroll List #
SmartListLoader(isLoading: isLoadingMore)
6. Pull to Refresh Integration #
SmartRefreshIndicator(
onRefresh: _refreshData,
child: ListView.builder(...),
)
📂 File Structure #
lib/
├── smart_dialogs_plus.dart # Export entry
└── src/
├── smart_alert_dialog.dart # Alert dialog with confirm/cancel
├── smart_progress_dialog.dart # Animated progress feedback
├── smart_snack_bar.dart # Flexible snackbar
├── smart_refresh_indicator.dart # Pull to refresh wrapper
├── smart_list_loader.dart # Infinite scroll loader
├── smart_progress_controller.dart # Controller
└── enums.dart # Enum of states
📸 Screenshots #
| Type | Preview |
|---|---|
| Loading | [] |
| Success | [] |
| Warning | [] |
| Error | [] |
| Snackbar | [] |
| Alert | [] |
| Refresh | [] |
| Load More | [] |
📄 License #
MIT License © 2025 Akika Digital
💡 Contributing #
Got ideas for more widgets or improvements? Submit an issue or pull request on GitHub. Let’s make feedback in Flutter apps smarter — together!
Smart Dialogs Plus — One toolkit to handle all user feedback in Flutter apps.