Progress dialog package for flutter
You must add the library as a dependency to your project.
dependencies: sn_progress_dialog: ^1.2.0
You 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); }, );