Skip to content
Related Articles

Related Articles

ProgressIndicator in Flutter
  • Last Updated : 20 Jul, 2020
GeeksforGeeks - Summer Carnival Banner

Flutter CircularProgressIndicator is a material widget that indicates that the application is busy. Firstly, we create a new project using Visual Studio Code(IDE) with the name “progressindicator”. You can choose any name.


1. Invoke View > Command Palette.

2. Type “flutter”, and select the Flutter: New Project.

3. Enter a project name and press Enter.

4. Create the parent directory for the new project folder.

ProgressIndicator in Flutter

Update plugin progress_dialog: ^1.2.0 in pubspec.yaml directory should look something like below

name: progressindicator
description: A new Flutter project.

# The following defines the version and build number for your application.
# A version number is three numbers separated by dots, like 1.2.43
# followed by an optional build number separated by a +.
# Both the version and the builder number may be overridden in flutter
# build by specifying --build-name and --build-number, respectively.
# In Android, build-name is used as versionName while build-number used as versionCode.
# Read more about Android versioning at
# In iOS, build-name is used as CFBundleShortVersionString 
# while build-number used as CFBundleVersion.
# Read more about iOS versioning at
version: 1.0.0+1

  sdk: ">=2.1.0 <3.0.0"

    sdk: flutter

  # The following adds the Cupertino Icons font to your application.
  # Use with the CupertinoIcons class for iOS style icons.
  cupertino_icons: ^0.1.2
  progress_dialog: ^1.2.0

    sdk: flutter

# For information on the generic Dart part of this file, see the
# following page:

# The following section is specific to Flutter.

  # The following line ensures that the Material Icons font is
  # included with your application, so that you can use the icons in
  # the material Icons class.
  uses-material-design: true

  # To add assets to your application, add an assets section, like this:
  # assets:
  #  - images/a_dot_burr.jpeg
  #  - images/a_dot_ham.jpeg

  # An image asset can refer to one or more resolution-specific "variants", see

  # For details regarding adding assets from package dependencies, see

  # To add custom fonts to your application, add a fonts section here,
  # in this "flutter" section. Each entry in this list should have a
  # "family" key with the font family name, and a "fonts" key with a
  # list giving the asset and other descriptors for the font. For
  # example:
  # fonts:
  #   - family: Schyler
  #     fonts:
  #       - asset: fonts/Schyler-Regular.ttf
  #       - asset: fonts/Schyler-Italic.ttf
  #         style: italic
  #   - family: Trajan Pro
  #     fonts:
  #       - asset: fonts/TrajanPro.ttf
  #       - asset: fonts/TrajanPro_Bold.ttf
  #         weight: 700
  # For details regarding fonts from package dependencies,
  # see

Now update the progress dialog flutter package.

Create a file with name main.dart like below :


import 'package:flutter/material.dart';
import 'package:progress_dialog/progress_dialog.dart';
ProgressDialog pr;
void main() {
    home: FirstScreen(),
class FirstScreen extends StatefulWidget {
  _FirstScreenState createState() => _FirstScreenState();
class _FirstScreenState extends State {
  ProgressDialog pr;
  // Add the CSS details of the page
  Widget build(BuildContext context) {
    pr = new ProgressDialog(context);
          message: 'processing',
          borderRadius: 8.0,
          backgroundColor: Colors.white,
          progressWidget: CircularProgressIndicator(),
          elevation: 8.0,
          insetAnimCurve: Curves.easeInOut,
          progress: 0.0,
          maxProgress: 100.0,
          progressTextStyle: TextStyle(
            color: Colors.white, fontSize: 13.0,
            fontWeight: FontWeight.w400),
          messageTextStyle: TextStyle(
            color: Colors.white, fontSize: 19.0,
            fontWeight: FontWeight.w600)
    return Scaffold(
      appBar: AppBar(
        // Define the design
          title: const Text('GeeksForGeeks'),
      body: Center(
        child: RaisedButton(
          child: Text('Click here..',
              style: TextStyle(color: Colors.white)),
          onPressed: () {
            Future.delayed(Duration(seconds: 2)).then((value) {
              pr.hide().whenComplete(() {
                  (BuildContext context) => SecondScreen()));
class SecondScreen extends StatefulWidget {
  _SecondScreenState createState() => _SecondScreenState();
class _SecondScreenState extends State {
  // Define the child 
  Widget build(BuildContext context) {
    return Scaffold(
      body: Center(
        child: RaisedButton(
          onPressed: () => Navigator.of(context).pop(),
          child: Text('Back',
              style: TextStyle(color: Colors.white)),

Output :

Complete code is available on

Attention reader! Don’t stop learning now. Get hold of all the important DSA concepts with the DSA Self Paced Course at a student-friendly price and become industry ready.

My Personal Notes arrow_drop_up
Recommended Articles
Page :