Progress dialog package for flutter
You must add the library as a dependency to your project.
dependencies:
 sn_progress_dialog: ^1.2.0You should then run flutter packages get
Now in your Dart code, you can use:
import 'package:sn_progress_dialog/sn_progress_dialog.dart';| Normal Progress | Valuable Progress | 
|---|---|
![]()  | 
![]()  | 
| Preparing Progress | Custom Progress | 
|---|---|
![]()  | 
![]()  | 
Create Progress Dialog
ProgressDialog pd = ProgressDialog(context: context);Set options
- Both parameters are not mandatory with version 1.1.3 (max, msg)
 - Default values can be changed according to the intended use.
 
pd.show(max: 100, msg: 'File Downloading...');You don't need to update state, just pass the value.
- If you're not interested in showing value, you don't need to update progressValue.
 
pd.update(value: ProgressValue, msg: "Updated message"); - Use this to update the dialog when the process is finished. If it is Empty, progress automatically closes.
 
 completed: Completed() // To use with default values
 completed: Completed(completedMsg: "Downloading Done !", completedImage: AssetImage("image path"), completionDelay: 2500)- Use the "cancel" class to create a cancel button
 
cancel: Cancel() // To use with default values
cancel: Cancel(cancelImageSize: 20.0, cancelImageColor: Colors.blue, cancelImage: AssetImage("image path"), cancelClicked: () {})- Returns the current state of the dialog.
 
onStatusChanged: (status) {
 if (status == DialogStatus.opened)
   print("opened");
 else if (status == DialogStatus.closed)
   print("closed");
 else if (status == DialogStatus.completed) 
   print("completed");
}Dialog closes automatically when its progress status equals the max value. Use this method if you want to turn it close manually.
pd.close();Returns whether the dialog box is open.
pd.isOpen();var dio = new Dio();
ProgressDialog pd = ProgressDialog(context: context);
pd.show(max: 100, msg: 'File Downloading...');
await dio.download(
  'your download_url',
  'your path',
  onReceiveProgress: (rec, total) {
    int progress = (((rec / total) * 100).toInt());
    pd.update(value: progress);
  },
);



