पैकेज, रिपॉज़िटरी और ऐप श्रेणियाँ खोजें

पैकेज विवरणv0.1.3

modal_progress_hud

एक मॉडल प्रगति इंडिकेटर विजेट (HUD = हेड्स-अप डिस्प्ले)। एक असिंक्रोनस कॉल के दौरान विजेट के एक्सेस को ब्लॉक करने के लिए दूसरे विजेट को लपेटें। स्वयं के स्पिनर को भी स्वीकार करता है।

30-दिन डाउनलोड
1.1 हज़ार
लाइक
485
Pub अंक
40

पैकेज इंस्टॉल करें

flutter pub add modal_progress_hud

पैकेज अवलोकन

सार्वजनिक जानकारी से बना चयन मार्गदर्शन। केवल संदर्भ हेतु।

एक फ्लटर पैकेज जो किसी भी विजेट के ऊपर एक मॉडल प्रगति सूचक (HUD) दिखाने के लिए प्रदान करता है। ऐसी तात्कालिक ऑपरेशन, जैसे API कॉल या डेटा प्रोसेसिंग के दौरान उपयोगकर्ता इंटरैक्शन को ब्लॉक करता है, जिससे एक चिकना UX सुनिश्चित होता है। HUD को कस्टमाइज़ किए जा सकने वाले स्पिनर का समर्थन करता है, जिससे डेवलपर्स अपने लोडिंग एनिमेशन का उपयोग कर सकते हैं। परिणाम प्राप्त करने के दौरान अनचाहे टैप को रोकने के लिए आदर्श है। बटन या फॉर्म जैसे विजेट्स के साथ बिना किसी दिक्कत के काम करता है।

उपयोग

  • असिंक ऑपरेशन के दौरान UI को ब्लॉक करना
  • फॉर्म में लोडिंग स्थिति दिखाएं
  • डेटा फ़ैच के दौरान टैप को रोकना
  • दृश्य प्रतिक्रिया के साथ उपयोगकर्ता अनुभव में सुधार
  • लोडिंग इंडिकेटर्स कस्टमाइज़ करना

मुख्य विशेषताएँ

  • मॉडल ओवरले इंटरैक्शन को रोकता है
  • कस्टम स्पिनर्स का समर्थन करता है
  • मौजूदा विजेट्स के साथ सरल एकीकरण
  • अप्रत्यक्ष लोडिंग प्रदर्शन
  • किसी भी widget वृक्ष के साथ काम करता है

इनके लिए उपयुक्त

  • त्वरित लोडिंग ओवरले चाहने विकासक
  • अक्सर एसिंक ऑपरेशन वाले ऐप्स
  • स्पष्ट लोडिंग स्थिति की आवश्यकता वाले UI
  • यूएक्स सुसंगतता को प्राथमिकता देने वाली टीमें
  • न्यूनतम बॉयलरप्लेट का उपयोग करने वाले प्रोजेक्ट

विचार योग्य बातें

  • त्रुटि स्थितियों का निपटारा नहीं करता है
  • कोई निर्मित पुनर्प्रयास योजना नहीं है
  • स्पिनर कस्टमाइजेशन के लिए अतिरिक्त सेटअप की आवश्यकता होती है
  • बेसिक के बाहर सीमित स्टाइलिंग विकल्प
  • जटिल लोडिंग कार्य प्रवाह के लिए उपयुक्त नहीं

मूल README

संबंधित सोर्स रिपॉज़िटरी के मूल README का स्नैपशॉट। नवीनतम सामग्री के लिए रिपॉज़िटरी देखें।

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!

श्रेणियाँ

सोर्स रिपॉज़िटरी

इस पैकेज का उपयोग करने वाले प्रोजेक्ट