A highly customizable, powerful and easy-to-use alert dialog for Flutter.
GIF

Installation
You just need to add sk_alert_dialog
as a dependency in your pubspec.yaml file.
dependencies: sk_alert_dialog: ^1.0.0
Usage
Import this class
import 'package:sk_alert_dialog/sk_alert_dialog.dart';
Simple Alert
SKAlertDialog.show( context: context, type: SKAlertType.info, title: 'Simple Alert', message: 'Hi! Welcome to SKALertDialog', onOkBtnTap: (value) { print('Okay Button Tapped'); }, );
Alert with buttons
SKAlertDialog.show( context: context, type: SKAlertType.buttons, title: 'Alert with buttons', message: 'Shall we move to next alert?', onOkBtnTap: (value) { print('Okay Button Tapped'); }, onCancelBtnTap: (value) { print('Cancel Button Tapped'); }, );
Alert with custom buttons
SKAlertDialog.show( context: context, type: SKAlertType.buttons, title: 'Alert with custom buttons', message: 'Do you like this package?', okBtnText: 'YES', okBtnTxtColor: Colors.white, okBtnColor: const Color(0xFF3BD459), cancelBtnText: 'NO', cancelBtnTxtColor: Colors.white, cancelBtnColor: const Color(0xFFFF4954), onOkBtnTap: (value) { print('Okay Button Tapped'); }, onCancelBtnTap: (value) { print('Cancel Button Tapped'); }, );
Login Form
SKAlertDialog.show( context: context, type: SKAlertType.loginform, title: 'Login Form', okBtnText: 'LOGIN', onOkBtnTap: (value) { print('Okay Button Tapped'); }, onCancelBtnTap: (value) { print('Cancel Button Tapped'); }, onEmailTextFieldChanged: (value) { print('On Email Text Changed $value'); }, onPasswordTextFieldChanged: (value) { print('On Password Text Changed $value'); }, );
Checkbox
SKAlertDialog.show( context: context, type: SKAlertType.checkbox, checkBoxAry: {'Choice One': true, 'Choice Two': false, 'Choice Three': true, 'Choice Four': false, 'Choice Five': false}, title: 'Checkbox', onCancelBtnTap: (value) { print('Cancel Button Tapped'); }, onCheckBoxSelection: (value) { print('onCheckBoxSelection $value'); }, );
Radio button
SKAlertDialog.show( context: context, type: SKAlertType.radiobutton, radioButtonAry: {'Choice One': 1, 'Choice Two': 2, 'Choice Three': 3, 'Choice Four': 4, 'Choice Five': 5}, title: UtilsImporter().stringUtils.radio_button_alert_title, onCancelBtnTap: (value) { print('Cancel Button Tapped'); }, onRadioButtonSelection: (value) { print('onRadioButtonSelection $value'); }, );
Custom Dialog
SKAlertDialog.show( context: context, type: SKAlertType.custom, customWidget: customWidget(), );
Create the custom widget
Widget customWidget() { return new Padding( padding: EdgeInsets.only(left: 20, right: 20, top: 20, bottom: 20), child: Column( crossAxisAlignment: CrossAxisAlignment.start, children: <Widget>[ Text( 'Thank you for reviewing the package', style: TextStyle( fontWeight: FontWeight.w400, color: Theme.of(context).primaryColorDark.withOpacity(0.7), fontSize: 20), ), SizedBox(height: 20), Row( mainAxisAlignment: MainAxisAlignment.center, children: <Widget>[ FlatButton( color: const Color(0xFF50A1FF), onPressed: () { Navigator.of(context).pop(); }, child: Text( 'The End !', style: TextStyle( fontWeight: FontWeight.w700, color: Colors.white, fontSize: 20), ), ) ], ), ], )); }
Source:senthilece01/SKAlertDialog