Buscar pacotes, repositórios e categorias de apps

Capa de progress_dialog_null_safe
Detalhes do pacotev3.1.0

progress_dialog_null_safe

Um pacote leve e seguro contra nulos do Flutter para exibir diálogos de progresso personalizáveis com suporte a atualizações dinâmicas de conteúdo e várias opções de estilização.

AndroidiOSWebmacOSWindowsLinux
Downloads em 30 dias
3 mil
Curtidas
46
Pontos Pub
140

Instalar pacote

flutter pub add progress_dialog_null_safe

Visão geral do pacote

Orientação gerada a partir de informações públicas. Apenas para referência.

Um pacote Flutter leve e seguro contra nulos projetado para exibir diálogos de progresso personalizáveis. Ele suporta atualizações dinâmicas de conteúdo e oferece várias opções de estilização para garantir uma interface consistente entre plataformas. Ideal para mostrar estados de carregamento durante operações assíncronas, garante segurança de tipo e experiência do usuário fluida no Android, iOS, Web, macOS, Windows e Linux. O pacote é fácil de integrar e manter, tornando-se adequado para aplicativos que exigem feedback responsivo durante o processamento de dados.

Casos de uso

  • Mostrando estados de carregamento durante chamadas de API
  • Atualizando dinamicamente o texto do diálogo
  • Exibindo o progresso durante os uploads de arquivos
  • Fornecendo feedback durante tarefas em segundo plano
  • Personalizando a aparência para consistência da marca

Principais recursos

  • Design seguro para nulos
  • Atualizações de conteúdo dinâmico
  • Suporte a múltiplas plataformas
  • Estilo personalizável
  • Leve e rápido
  • Integração fácil com o Flutter

Indicado para

  • Desenvolvedores construindo aplicativos cross-platform com Flutter
  • Equipes que priorizam segurança de tipo
  • Aplicativos que precisam de indicadores de carregamento responsivos
  • Projetos com dependências mínimas
  • aplicações com interface pesada e operações assíncronas frequentes

Considerações

  • Requer Flutter 2.5 ou superior
  • Limitado à visualização básica de progresso
  • Sem tratamento embutido de cancelamento
  • Mais adequado para cenários de carregamento simples
  • Pode ser necessário lógica adicional para fluxos de trabalho complexos

README original

Snapshot do README original do repositório-fonte vinculado. Consulte o repositório para o conteúdo mais recente.

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/

Categorias

Repositório-fonte

Projetos que usam este pacote

Ainda não há dados.