snacknload 1.0.1 copy "snacknload: ^1.0.1" to clipboard
snacknload: ^1.0.1 copied to clipboard

none

SnackNLoad #

SnackNLoad is a Flutter package that provides a powerful, customizable, and easy-to-use solution for loading indicators and top snackbars in your Flutter application. With SnackNLoad, you can manage loading states and display success, error, or informational snackbars with ease.

snacknload

Features #

  • Multiple loading styles and indicators.
  • Customizable snackbars with different types (success, error, info).
  • Flexible masking options during loading.
  • Custom animations for loading indicators.
  • Support for toast notifications at different positions (top, center, bottom).
  • Easy integration and configuration.
  • Styled snackbar with position options of top, center, bottom.
  • Show dialog with customization options and adaptive support.
  • All features are accessible after initilization and no need to provide context because snacknload uses there in built global context.

Installation #

Add snacknload to your pubspec.yaml file:

dependencies:
  snacknload: ^1.0.1

Then, run:

flutter pub get

Getting Started #

1. Import the Package #

import 'package:snacknload/snacknload.dart';

2. Configure SnackNLoad #

Configure SnackNLoad in your main() function:

void main() {
  runApp(MyApp());
  configLoading();
}

void configLoading() {
  SnackNLoad.instance
    ..displayDuration = const Duration(milliseconds: 2000)
    ..indicatorType = LoadingIndicatorType.fadingCircle
    ..loadingStyle = LoadingStyle.dark
    ..indicatorSize = 45.0
    ..radius = 10.0
    ..progressColor = Colors.yellow
    ..backgroundColor = Colors.green
    ..indicatorColor = Colors.yellow
    ..textColor = Colors.yellow
    ..maskColor = Colors.blue.withOpacity(0.5)
    ..userInteractions = true
    ..dismissOnTap = false
    ..customAnimation = CustomAnimation();
}

3. Initialize SnackNLoad in Your App #

Use SnackNLoad.init() in the builder property of your MaterialApp:

class MyApp extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    return MaterialApp(
      title: 'SnackNLoad Example',
      theme: ThemeData(primarySwatch: Colors.blue),
      home: MyHomePage(title: 'SnackNLoad Example'),
      builder: SnackNLoad.init(),
    );
  }
}

4. Use SnackNLoad in Your Widgets #

Show a Loading Indicator

SnackNLoad.show(status: 'Loading...', maskType: LoadingMaskType.black);

Dismiss the Loading Indicator

SnackNLoad.dismiss();

Show a Success Snackbar

SnackNLoad.showSuccess('Operation Successful!');

Show an Error Snackbar

SnackNLoad.showError('Something went wrong!');

Show an Informational Snackbar

SnackNLoad.showInfo('Here is some information.');

Display a Toast

SnackNLoad.showToast('This is a toast message.');

Show a Top Snackbar

SnackNLoad.showSnackBar(
  'Welcome in year 2025!\nMay this year fulfill your dreams and bring happiness.',
  type: ToastType.success,
  title: "Hello",
  showIcon: false,
  toastPosition: LoadingToastPosition.top,
);

Custom Animation

Create a custom animation for the loading indicator by extending SnackNLoadLoadingAnimation:

class CustomAnimation extends SnackNLoadLoadingAnimation {
  @override
  Widget buildWidget(
    Widget child,
    AnimationController controller,
    AlignmentGeometry alignment,
  ) {
    return Opacity(
      opacity: controller.value,
      child: RotationTransition(
        turns: controller,
        child: child,
      ),
    );
  }
}

Advanced Usage #

Loading Styles #

Choose from multiple loading styles:

SnackNLoad.instance.loadingStyle = LoadingStyle.dark;

Toast Positions #

Set toast position to top, center, or bottom:

SnackNLoad.instance.toastPosition = LoadingToastPosition.top;

Indicator Types #

Switch between various indicator types:

SnackNLoad.instance.indicatorType = LoadingIndicatorType.wave;

Mask Types #

Control user interactions during loading:

SnackNLoad.instance.maskType = LoadingMaskType.black;

Example Application #

Check out the full example in the example folder to explore all the features.

Acknowledgments #

SnackNLoad is inspired by and extends the functionality of flutter_easyloading. We appreciate the contributions of the original package’s authors, which laid the groundwork for this project.

License #

SnackNLoad is released under the MIT License.

Contributing

We welcome contributions! Please feel free to open issues or submit pull requests.

Connect with me: