busy 1.0.3 copy "busy: ^1.0.3" to clipboard
busy: ^1.0.3 copied to clipboard

Centralize loading widget management, thanks to this very easy-to-use package, which uses no external package dependencies.

busy #

A flutter package that focuses on the busy state.

Getting Started #

Screenshot

Features #

  • Adds an isBusy attribute to a State object.
  • Adds a startBusyContext method that automatically manages the state of the isBusy property.
  • BusyScaffold : scaffold with auto managed busy state
  • BusyCupertinoScaffold : cupertino scaffold with auto managed busy state
  • BusyWidget : widget with auto managed busy state
  • No external packages used, use busy serenely

Usage #

BusyScaffold #

Use this widget in your material application.

Screenshot

class _BusyScaffoldPageState extends State<BusyScaffoldPage> {
  @override
  Widget build(BuildContext context) {
    return BusyScaffold(
        isBusy: isBusy,
        scaffold: Scaffold(
            appBar: AppBar(
              title: const Text("Busy scaffold"),
            ),
            body: SafeArea(
              child: Center(
                child: Column(
                  mainAxisAlignment: MainAxisAlignment.start,
                  children: <Widget>[
                    const SizedBox(height: 8),
                    FilledButton(
                        onPressed: () {
                          startBusyContext(() async {
                            await Future.delayed(const Duration(seconds: 2));
                          });
                        },
                        child: Text("Start async method")),
                  ],
                ),
              ),
            )));
  }
}

BusyCupertinoScaffold #

Use this widget in your iOS application.

Screenshot

class _BusyCupertinoScaffoldPageState extends State<BusyCupertinoScaffoldPage> {
  @override
  Widget build(BuildContext context) {
    return BusyCupertinoScaffold(
        isBusy: isBusy,
        scaffold: CupertinoPageScaffold(
            navigationBar: const CupertinoNavigationBar(
              middle: Text("Busy cupertino scaffold"),
            ),
            child: SafeArea(
              child: Center(
                child: Column(
                  mainAxisAlignment: MainAxisAlignment.start,
                  children: <Widget>[
                    const SizedBox(height: 8),
                    FilledButton(
                        onPressed: () {
                          startBusyContext(() async {
                            await Future.delayed(const Duration(seconds: 2));
                          });
                        },
                        child: const Text("Start async method")),
                  ],
                ),
              ),
            )));
  }
}

BusyWidget #

Screenshot

class _BusyWidgetPageState extends State<BusyWidgetPage> {
  @override
  Widget build(BuildContext context) {
    return Scaffold(
      appBar: AppBar(
        title: const Text("Busy widget"),
      ),
      body: Center(
        child: Column(
          mainAxisAlignment: MainAxisAlignment.start,
          children: <Widget>[
            BusyWidget(
                isBusy: isBusy,
                child: SizedBox(
                  height: MediaQuery.of(context).size.height * 0.33,
                  child: Container(
                      color: Colors.blue,
                      child: const Center(child: Text("Busy widget"))),
                )),
            SizedBox(
              height: MediaQuery.of(context).size.height * 0.33,
              child: Container(
                  color: Colors.red,
                  child: const Center(child: Text("Non busy widget"))),
            ),
            FilledButton(
                onPressed: () {
                  startBusyContext(() async {
                    await Future.delayed(const Duration(seconds: 2));
                  });
                },
                child: const Text("Start async method")),
          ],
        ),
      ),
    );
  }
}
1
likes
130
pub points
27%
popularity

Publisher

unverified uploader

Centralize loading widget management, thanks to this very easy-to-use package, which uses no external package dependencies.

Repository (GitHub)
View/report issues

Documentation

API reference

License

MIT (LICENSE)

Dependencies

flutter

More

Packages that depend on busy