Flutter Quick Alert Dialog
alert dialog in flutter

Hi Guy’s Welcome to Proto Coders Point. In this flutter tutorial let’s learn how to show alert dialog in flutter the quickest way by using QuickAlert dialog package.

Flutter quickalert

In flutter, If you are willing to show a Alert dialog then quickalert package is the best library to use. It’s an animated alert dialog using which we can show dialop popup alert like success alert, error alert, warning alert, confirm alert dialog box with just few lines of code.

Getting Started with Installation of flutter package

1. Add Dependencies

In your flutter project, Open pubspec.yaml file & under dependencies section add quickalert flutter package.

dependencies:
  flutter:
    sdk: flutter
  quickalert:   // add this line

Now hit pub get button or run flutter pub get command to download the flutter package as external library.

2. To use it Import quickalert.dart

import 'package:quickalert/quickalert.dart';

3. Syntax to Show Alert Dialog using quickalert

To display alert all you need to do is call QuickAlert.show() widget & define a alert type property to it.

Syntax

QuickAlert.show(
          context: context,
          type: QuickAlertType.success,
          text: 'Transaction Completed Successfully!',
          autoCloseDuration: const Duration(seconds: 2),
  );

When a button is clicked or any event or action occurs from user end, you need to just call above code.

Type of Flutter Alert Dialog

Success Alert

QuickAlert.show(
   context: context,
   type: QuickAlertType.success,
   text: 'Form Submitted Successfully!',
);

Confirm Alert

QuickAlert.show(
   context: context,
   type: QuickAlertType.confirm,
   text: 'Sure you want to logout?',
   confirmBtnText: 'Yes',
   cancelBtnText: 'No',
   confirmBtnColor: Colors.green,
  );

Error Alert

QuickAlert.show(
   context: context,
   type: QuickAlertType.error,
   title: 'Oops...',
   text: 'Error While Uploading the File, Please Retry ',
);

Warning Alert

QuickAlert.show(
   context: context,
   type: QuickAlertType.warning,
   title: 'Warning!',
   text: 'You are misusing the protocal',
  );

Info Alert

 QuickAlert.show(
   context: context,
   type: QuickAlertType.info,
   title: 'New Offer',
   text: 'Get Discount of 50% , On showing of Rs 5000',
  );

Loading Alert

QuickAlert.show(
   context: context,
   type: QuickAlertType.loading,
   title: 'Loading...',
   text: 'Please wait',
  );

Complete Source Code – QuickAlert Example

import 'package:flutter/material.dart';
import 'package:quickalert/quickalert.dart';

void main() {
  runApp(const MyApp());
}

class MyApp extends StatelessWidget {
  const MyApp({super.key});

  // This widget is the root of your application.
  @override
  Widget build(BuildContext context) {
    return MaterialApp(
      title: 'Flutter Demo',
      debugShowCheckedModeBanner: false,
      theme: ThemeData(
        primarySwatch: Colors.blue,
      ),
      home: const MyHomePage(),
    );
  }
}

class MyHomePage extends StatefulWidget {
  const MyHomePage({Key? key}) : super(key: key);

  @override
  State<MyHomePage> createState() => _MyHomePageState();
}

class _MyHomePageState extends State<MyHomePage> {
  @override
  Widget build(BuildContext context) {
    // success Alert
    final successAlert = buildButton(
      onTap: () {
        QuickAlert.show(
          context: context,
          type: QuickAlertType.success,
          text: 'Form Submitted Successfully!',
        );
      },
      title: 'Success',
      text: 'Transaction Completed Successfully!',
      leadingIcon: Icon(
        Icons.check_circle,
        color: Colors.green,
      ),
    );

    // error Alert
    final errorAlert = buildButton(
      onTap: () {
        QuickAlert.show(
          context: context,
          type: QuickAlertType.error,
          title: 'Oops...',
          text: 'Error While Uploading the File, Please Retry ',
        );
      },
      title: 'Error',
      text: 'Sorry, something went wrong',
      leadingIcon: Icon(
        Icons.error,
        color: Colors.red,
      ),
    );
    // warning Alert
    final warningAlert = buildButton(
      onTap: () {
        QuickAlert.show(
          context: context,
          type: QuickAlertType.warning,
          title: 'Warning!',
          text: 'You are misusing the protocal',
        );
      },
      title: 'Warning',
      text: 'You just broke protocol',
      leadingIcon: Icon(
        Icons.warning,
        color: Colors.red,
      ),
    );

    // info Alert
    final infoAlert = buildButton(
      onTap: () {
        QuickAlert.show(
          context: context,
          type: QuickAlertType.info,
          title: 'New Offer',
          text: 'Get Discount of 50% , On showing of Rs 5000',
        );
      },
      title: 'Info',
      text: 'Learn More..!',
      leadingIcon: Icon(
        Icons.info,
        color: Colors.grey,
      ),
    );

    // confirm Alert
    final confirmAlert = buildButton(
      onTap: () {
        QuickAlert.show(
          context: context,
          type: QuickAlertType.confirm,
          text: 'Sure you want to logout?',
          confirmBtnText: 'Yes',
          cancelBtnText: 'No',
          confirmBtnColor: Colors.green,
        );
      },
      title: 'Confirm',
      text: 'Do you want to logout',
      leadingIcon: Icon(
        Icons.logout,
        color: Colors.orange,
      ),
    );

    // loading
    final loadingAlert = buildButton(
      onTap: () {
        QuickAlert.show(
          context: context,
          type: QuickAlertType.loading,
          title: 'Loading...',
          text: 'Please wait',
        );
      },
      title: 'Loading',
      text: 'Please Wait',
      leadingIcon: Icon(
        Icons.downloading,
        color: Colors.greenAccent,
      ),
    );

    return Scaffold(
      backgroundColor: Colors.black54,
      body: Center(
        child: Column(
          mainAxisAlignment: MainAxisAlignment.center,
          children: [
            successAlert,
            SizedBox(
              height: 20,
            ),
            errorAlert,
            SizedBox(
              height: 20,
            ),
            warningAlert,
            SizedBox(
              height: 20,
            ),
            infoAlert,
            SizedBox(
              height: 20,
            ),
            confirmAlert,
            SizedBox(
              height: 20,
            ),
            loadingAlert,
            ElevatedButton(
                onPressed: () {
                  QuickAlert.show(
                      context: context,
                      type: QuickAlertType.success,
                      title: "The Action was Successful",
                      text: "Subscribe to Proto Coders Point",
                      textColor: Colors.red,
                      autoCloseDuration: Duration(seconds: 2));
                },
                child: Text("Show Success"))
          ],
        ),
      ),
    );
  }
}

// flutter custom card button
Card buildButton({
  required onTap,
  required title,
  required text,
  required leadingIcon,
}) {
  return Card(
    shape: const StadiumBorder(),
    margin: const EdgeInsets.symmetric(
      horizontal: 20,
    ),
    clipBehavior: Clip.antiAlias,
    elevation: 1,
    child: ListTile(
      onTap: onTap,
      leading: leadingIcon,
      title: Text(title ?? ""),
      subtitle: Text(text ?? ""),
      trailing: const Icon(
        Icons.keyboard_arrow_right_rounded,
      ),
    ),
  );
}

Recommended Articles

Flutter Alert Dialog using RFlutter_alert package

Android Custom dialog box

Android Alert Box with list of menu options

Flutter rating dialog – redirect user to app store