Buscar pacotes, repositórios e categorias de apps

Detalhes do pacotev0.1.3

modal_progress_hud

Um widget de indicador de progresso modal (HUD = exibição de cabeça alta). Envolver outro widget para bloquear o acesso ao widget durante uma chamada assíncrona. Também aceita um spinner personalizado.

Downloads em 30 dias
1,1 mil
Curtidas
485
Pontos Pub
40

Instalar pacote

flutter pub add modal_progress_hud

Visão geral do pacote

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

Um pacote Flutter que fornece um indicador de progresso modal (HUD) para exibir uma sobreposição de carregamento sobre qualquer widget. Ele bloqueia a interação do usuário durante operações assíncronas, como chamadas de API ou processamento de dados, garantindo uma experiência de usuário suave. O HUD oferece um spinner personalizável, permitindo que os desenvolvedores usem suas próprias animações de carregamento. Ideal para evitar toques acidentais enquanto aguarda resultados. Funciona perfeitamente com widgets como botões ou formulários.

Casos de uso

  • Bloqueando a IU durante operações assíncronas
  • Mostrando estado de carregamento em formulários
  • Evitando toques durante a busca de dados
  • Melhorando a UX com feedback visual
  • Personalizando indicadores de carregamento

Principais recursos

  • Sobreposição modal bloqueando interações
  • Suporta rotores personalizados
  • Integração simples com widgets existentes
  • Exibição de carregamento não intrusiva
  • Funciona com qualquer árvore de widget

Indicado para

  • Desenvolvedores que precisam de sobreposições de carregamento rápido
  • Aplicativos com operações assíncronas frequentes
  • UIs que exigem estados claros de carregamento
  • Equipes priorizando consistência da UX
  • Projetos usando boilerplate mínimo

Considerações

  • Não trata estados de erro
  • Sem mecanismo de repetição embutido
  • A personalização do Spinner requer configuração adicional
  • Opções limitadas de estilização além do básico
  • Não adequado para fluxos de trabalho de carregamento complexos

README original

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

modal_progress_hud

A simple widget wrapper to enable modal progress HUD (a modal progress indicator, HUD = Heads Up Display)

pub package Build Status Coverage Status

Inspired by this article.

Demo

Demo

See example for details

Usage

Add the package to your pubspec.yml file.

dependencies:
  modal_progress_hud: ^0.1.3

Next, import the library into your widget.

import 'package:modal_progress_hud/modal_progress_hud.dart';

Now, all you have to do is simply wrap your widget as a child of ModalProgressHUD, typically a form, together with a boolean that is maintained in local state.

...
bool _saving = false
...

@override
Widget build(BuildContext context) {
  return Scaffold(
     body: ModalProgressHUD(child: Container(
       Form(...)
     ), inAsyncCall: _saving),
  );
}

Options

The current parameters are customizable in the constructor

ModalProgressHUD(
  @required inAsyncCall: bool,
  @required child: Widget,
  opacity: double,
  color: Color,
  progressIndicator: CircularProgressIndicator,
  offset: double
  dismissible: bool,
);

Example

Here is an example app that demonstrates the usage.

  1. On initial load, _saving is false which causes your child widget to display
  2. When the form is submitted, _saving is set to true, which will display the modal
  3. Once the async call is complete, _saving is set back to false, hiding the modal
class SettingsPage extends StatefulWidget {
  @override
  _SettingsPageState createState() => new _SettingsPageState();
}

class _SettingsPageState extends State<SettingsPage> {
  bool _saving = false;

  void _submit() {

    setState(() {
      _saving = true;
    });

    //Simulate a service call
    print('submitting to backend...');
    new Future.delayed(new Duration(seconds: 4), () {
      setState(() {
        _saving = false;
      });
    });
  }

  Widget _buildWidget() {
    return new Form(
      child: new Column(
        children: [
          new SwitchListTile(
            title: const Text('Bedroom'),
            value: _bedroom,
            onChanged: (bool value) {
              setState(() {
                _bedroom = value;
              });
            },
            secondary: const Icon(Icons.hotel),
          ),
          new RaisedButton(
            onPressed: _submit,
            child: new Text('Save'),
          ),
        ],
      ),
    );
  }

  @override
  Widget build(BuildContext context) {
    return new Scaffold(
      appBar: new AppBar(
        title: new Text('Flutter Progress Indicator Demo'),
        backgroundColor: Colors.blue,
      ),
      body: ModalProgressHUD(child: _buildWidget(), inAsyncCall: _saving),
    );
  }
}

Update: See this article on Medium about async form validation

See the example application source for a complete sample app using the modal progress HUD. Included in the example is a method for using a form's validators while making async calls (see flutter/issues/9688 for details).

Issues and feedback

Please file issues to send feedback or report a bug. Thank you!

Categorias

Repositório-fonte

Projetos que usam este pacote