パッケージ、リポジトリ、アプリカテゴリを検索

progress_dialog_null_safe のカバー
パッケージ詳細v3.1.0

progress_dialog_null_safe

カスタマイズ可能なプログレスダイアログを表示するための軽量でnull安全なFlutterパッケージで、動的なコンテンツ更新とさまざまなスタイルオプションをサポートしています。

AndroidiOSWebmacOSWindowsLinux
30日間ダウンロード
3000
いいね数
46
Pub ポイント
140

パッケージをインストール

flutter pub add progress_dialog_null_safe

パッケージ概要

公開情報に基づく選定ガイドです。参考としてご利用ください。

カスタマイズ可能なプログレスダイアログを表示するための軽量でnull安全なFlutterパッケージです。動的なコンテンツ更新をサポートし、プラットフォーム間で一貫したUIを実現するためのさまざまなスタイルオプションを提供します。非同期操作中のローディング状態を表示するのに最適であり、Android、iOS、Web、macOS、Windows、Linuxで型安全性とスムーズなユーザー体験を保証します。統合およびメンテナンスが簡単で、データ処理中に応答性のあるフィードバックが必要なアプリに適しています。

用途

  • API呼び出し中のロード状態を表示する
  • ダイナミックにダイアログテキストを更新する
  • ファイルアップロード中の進行状況を表示する
  • バックグラウンドタスク中にフィードバックを提供する
  • ブランドの一貫性を保つための外観のカスタマイズ

主な機能

  • null セーフな設計
  • 動的コンテンツの更新
  • 複数プラットフォーム対応
  • カスタマイズ可能なスタイル
  • 軽量で高速
  • Flutter との簡単な統合

適している対象

  • クロスプラットフォームのFlutterアプリを開発する開発者
  • 型安全性を重視するチーム
  • 応答性のロードインジケーターを必要とするアプリ
  • 最小限の依存関係を必要とするプロジェクト
  • 頻繁な非同期操作を伴うUI重視のアプリケーション

注意事項

  • Flutter 2.5 以降が必要です
  • 基本的な進行状況の可視化に限定
  • 組み込みのキャンセル処理なし
  • シンプルな読み込みシナリオに最適
  • 複雑なワークフローには追加の論理が必要になる場合があります

元の README

関連するソースリポジトリの README 原文のスナップショットです。最新の内容はリポジトリをご覧ください。

progress_dialog

A light weight package to show progress dialog. As it is a stateful widget, you can change the text shown on the dialog dynamically.

This is the original package and it's owner https://github.com/fayaz07/progress_dialog

It was discontinued by him, but i really liked the package so I am trynna revive it :D I added null safety and updated most of the stuff making it null safe and useable again :)

Demo

Normal dialog Demo Download dialog Demo

How to use

Import the package in your dart file

import 'package:progress_dialog/progress_dialog_null_safe.dart';

Create and initialise a ProgressDialog object inside the build() method passing context to it

  1. Initialize the ProgressDialog object
    final ProgressDialog pr = ProgressDialog(context);
    
  2. By default it is a normal dialog to show some message, if you would like to use it to show percentage of progress done, specify the optional type parameter and specify if you want your dialog to dismiss when back button is pressed isDismissible parameter (Optional)
    //For normal dialog
    pr = ProgressDialog(context,type: ProgressDialogType.Normal, isDismissible: true/false, showLogs: true/false);
        
    //For showing progress percentage
    pr =  ProgressDialog(context,type: ProgressDialogType.Download, isDismissible: true/false, showLogs: true/false);
    
  3. > Note: Please initialize the ```ProgressDialog```, where you have availability of the context
  4. Style the progress dialog (Optional)
    pr.style(
      message: 'Downloading file...',
      borderRadius: 10.0,
      backgroundColor: Colors.white,
      progressWidget: CircularProgressIndicator(),
      elevation: 10.0,
      insetAnimCurve: Curves.easeInOut,
      progress: 0.0,
      textDirection: TextDirection.rtl,
      maxProgress: 100.0,
      progressTextStyle: TextStyle(
         color: Colors.black, fontSize: 13.0, fontWeight: FontWeight.w400),
      messageTextStyle: TextStyle(
         color: Colors.black, fontSize: 19.0, fontWeight: FontWeight.w600)
      );
    
    Note: You don't need to use all parameters, all of them are optional
    
  5. Showing the progress dialog
    await pr.show();
    
  6. Dynamically update the content shown out there
    pr.update(
      progress: 50.0,
      message: "Please wait...",
      progressWidget: Container(
        padding: EdgeInsets.all(8.0), child: CircularProgressIndicator()),
      maxProgress: 100.0,
      progressTextStyle: TextStyle(
        color: Colors.black, fontSize: 13.0, fontWeight: FontWeight.w400),
      messageTextStyle: TextStyle(
        color: Colors.black, fontSize: 19.0, fontWeight: FontWeight.w600),
      );
    
    Note: You don't need to use all parameters, all of them are optional
    
  7. Dismissing the progress dialog
    pr.hide().then((isHidden) {
      print(isHidden);
    });
    
    // or
    await pr.hide();
    

Navigating to next screens must be done after the completion of Future - hide(). See here for example

Check if progress dialog is showing
bool isProgressDialogShowing = pr.isShowing();
print(isProgressDialogShowing);
Use custom body
    pr = ProgressDialog(
      context,
      type: ProgressDialogType.Normal,
      isDismissible: true,
      /// your body here
      customBody: LinearProgressIndicator(
        valueColor: AlwaysStoppedAnimation<Color>(Colors.blueAccent),
        backgroundColor: Colors.white,
      ),
    );

Demo

Normal dialog Demo Download dialog Demo

Default configuration/styles

If you don't like to configure/style the dialog and continue with the default style, it's okay but just have a look at our default configuration.

Attribute Value
Dismissible true
ProgressDialogType ProgressDialogType.Normal
BackgroundColor Colors.white
BorderRadius RoundedRectangularBorder(radius: 8.0)
AnimationCurve Curves.easeInOut
Elevation 8.0
ProgressWidget Double_rings_loding_indicator
MessageTextStyle color: Colors.black, fontSize: 19.0, fontWeight: FontWeight.w600
ProgressTextStyle color: Colors.black, fontSize: 13.0, fontWeight: FontWeight.w400
showLogs false
Well let's discuss limits for configuring it
Attribute Can be updated during instantiating Can be updated during styling Can be updated during dialog is shown
Dismissible Yes No No
ProgressDialogType Yes No No
BackgroundColor No Yes No
BorderRadius No Yes No
AnimationCurve No Yes No
Elevation No Yes No
ProgressWidget No Yes Yes
MessageTextStyle No Yes Yes
ProgressTextStyle No Yes Yes
ShowLogs Yes No No

Loading indicator -> https://loading.io/

カテゴリー

ソースリポジトリ

このパッケージを使用しているプロジェクト

データはまだありません。