loading_plus 2.0.2 copy "loading_plus: ^2.0.2" to clipboard
loading_plus: ^2.0.2 copied to clipboard

This package is to help you with add loadings to your app in simple way.

example/lib/main.dart

import 'package:flutter/material.dart';
import 'package:loading_plus/loading_plus.dart';

// Entry point of the application
void main() {
  // Run the MyApp widget as the root of the widget tree
  runApp(const MyApp());
}

class MyApp extends StatelessWidget {
  const MyApp({super.key});

  @override
  Widget build(BuildContext context) {
    return const MaterialApp(
      title: 'Flutter Loading Example',
      // Add (LoadingPlus) in your MaterialApp, it must be above all other screen in the widget tree.
      home: LoadingPlus(
        child: HomePage(),
      ),
    );
  }
}

class HomePage extends StatefulWidget {
  const HomePage({super.key});

  @override
  State<HomePage> createState() => _HomePageState();
}

class _HomePageState extends State<HomePage> {
  Future<void> fetchData() async {
    LoadingPlusController().show(); // Show the default loading
    await Future.delayed(
        const Duration(seconds: 3)); // Simulate a time-consuming process
    LoadingPlusController()
        .dismiss(); // Hide the loading when the process is complete
  }

  @override
  Widget build(BuildContext context) {
    return Scaffold(
      appBar: AppBar(
        title: const Text('Flutter Loading Example'),
      ),
      body: Center(
        child: Column(
          mainAxisAlignment: MainAxisAlignment.center,
          crossAxisAlignment: CrossAxisAlignment.center,
          children: [
            FilledButton(
              onPressed: fetchData,
              child: const Text('Fetch data'),
            ), // Button to trigger the fetchData function
            FilledButton(
              onPressed: () {
                Navigator.of(context).push(
                    MaterialPageRoute(builder: (_) => const LoadingPage()));
              },
              child: const Text('Go to loading page'),
            ), // Button to navigate to the LoadingPage
          ],
        ),
      ),
    );
  }
}

class LoadingPage extends StatelessWidget {
  const LoadingPage({super.key});

  @override
  Widget build(BuildContext context) {
    return Scaffold(
      appBar: AppBar(
        title: const Text('Loading Page'),
      ),
      body: const Center(
        child: Column(
          mainAxisAlignment: MainAxisAlignment.center,
          crossAxisAlignment: CrossAxisAlignment.center,
          children: [
            LoadingPlusWidget(), // Show default loading widget
            SizedBox(height: 120.0),
            LoadingPlusWidget(
              customLoadingWidget: Center(
                child: Text('Loading...'),
              ),
            ), // Show a custom loading widget
          ],
        ),
      ),
    );
  }
}
7
likes
150
points
51
downloads

Documentation

API reference

Publisher

unverified uploader

Weekly Downloads

This package is to help you with add loadings to your app in simple way.

Repository (GitHub)
View/report issues

License

BSD-3-Clause (license)

Dependencies

back_button_interceptor, flutter

More

Packages that depend on loading_plus