toasta 1.0.4 copy "toasta: ^1.0.4" to clipboard
toasta: ^1.0.4 copied to clipboard

Elegant Toast UI for Flutter Apps, inspired from iOS. Toasta had smooth animation & easily to customize

example/lib/main.dart

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

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

class MyApp extends StatelessWidget {
  const MyApp({Key? key}) : super(key: key);

  @override
  Widget build(BuildContext context) {
    return ToastaContainer(
      child: MaterialApp(
        title: "Toasta Demo",
        debugShowCheckedModeBanner: false,
        theme: ThemeData(
          primarySwatch: Colors.blue,
        ),
        home: MyHomePage(),
      ),
    );
  }
}

class MyHomePage extends StatefulWidget {
  const MyHomePage({Key? key}) : super(key: key);

  @override
  State<MyHomePage> createState() => _MyHomePageState();
}

class _MyHomePageState extends State<MyHomePage> {
  var darkMode = false;

  @override
  Widget build(BuildContext context) {
    return Scaffold(
      backgroundColor: darkMode ? Colors.black : Colors.white,
      body: SingleChildScrollView(
        child: Center(
          child: Container(
            width: double.infinity,
            constraints: const BoxConstraints(maxWidth: 500),
            child: Column(
                mainAxisAlignment: MainAxisAlignment.center,
                crossAxisAlignment: CrossAxisAlignment.center,
                mainAxisSize: MainAxisSize.max,
                children: [
                  const SizedBox(height: 32),
                  Padding(
                    padding: const EdgeInsets.symmetric(horizontal: 32.0),
                    child: Container(
                      width: double.infinity,
                      height: 48,
                      child: ElevatedButton(
                        style: ElevatedButton.styleFrom(
                            elevation: 2,
                            primary: darkMode ? Colors.white : Colors.black),
                        child: Text('Title & Subtitle',
                            style: TextStyle(
                                color: darkMode ? Colors.black : Colors.white)),
                        onPressed: () {
                          toastTitleSubtitle(context);
                        },
                      ),
                    ),
                  ),
                  Padding(
                    padding: const EdgeInsets.symmetric(
                        vertical: 8, horizontal: 32.0),
                    child: Container(
                      width: double.infinity,
                      height: 48,
                      child: ElevatedButton(
                        style: ElevatedButton.styleFrom(
                            elevation: 2,
                            primary: darkMode ? Colors.white : Colors.black),
                        child: Text('Without Fade In Subtitle',
                            style: TextStyle(
                                color: darkMode ? Colors.black : Colors.white)),
                        onPressed: () {
                          toastNoFadeIn(context);
                        },
                      ),
                    ),
                  ),
                  Padding(
                    padding: const EdgeInsets.symmetric(
                        vertical: 8, horizontal: 32.0),
                    child: Container(
                      width: double.infinity,
                      height: 48,
                      child: ElevatedButton(
                        style: ElevatedButton.styleFrom(
                            elevation: 2,
                            primary: darkMode ? Colors.white : Colors.black),
                        child: Text('Custom Duration',
                            style: TextStyle(
                                color: darkMode ? Colors.black : Colors.white)),
                        onPressed: () {
                          toastCustomDuration(context);
                        },
                      ),
                    ),
                  ),
                  Padding(
                    padding: const EdgeInsets.symmetric(
                        vertical: 8, horizontal: 32.0),
                    child: Container(
                      width: double.infinity,
                      height: 48,
                      child: ElevatedButton(
                        style: ElevatedButton.styleFrom(
                            elevation: 2, primary: Colors.green),
                        child: Text('Success',
                            style: TextStyle(color: Colors.white)),
                        onPressed: () {
                          toastSuccess(context);
                        },
                      ),
                    ),
                  ),
                  Padding(
                    padding: const EdgeInsets.symmetric(
                        vertical: 8, horizontal: 32.0),
                    child: Container(
                      width: double.infinity,
                      height: 48,
                      child: ElevatedButton(
                        style: ElevatedButton.styleFrom(
                            elevation: 2, primary: Colors.red),
                        child: Text('Failed',
                            style: TextStyle(color: Colors.white)),
                        onPressed: () {
                          toastFailed(context);
                        },
                      ),
                    ),
                  ),
                  Padding(
                    padding: const EdgeInsets.symmetric(
                        vertical: 8, horizontal: 32.0),
                    child: Container(
                      width: double.infinity,
                      height: 48,
                      child: ElevatedButton(
                        style: ElevatedButton.styleFrom(
                            elevation: 2, primary: Colors.yellow),
                        child: Text('Warning',
                            style: TextStyle(color: Colors.black)),
                        onPressed: () {
                          toastWarning(context);
                        },
                      ),
                    ),
                  ),
                  Padding(
                    padding: const EdgeInsets.symmetric(
                        vertical: 8, horizontal: 32.0),
                    child: Container(
                      width: double.infinity,
                      height: 48,
                      child: ElevatedButton(
                        style: ElevatedButton.styleFrom(
                            elevation: 2, primary: Colors.blue),
                        child:
                            Text('Info', style: TextStyle(color: Colors.white)),
                        onPressed: () {
                          toastInfo(context);
                        },
                      ),
                    ),
                  ),
                  Padding(
                    padding: const EdgeInsets.all(32.0),
                    child: Container(
                      width: double.infinity,
                      height: 48,
                      child: OutlinedButton(
                        style: OutlinedButton.styleFrom(
                          side: BorderSide(
                              width: 1,
                              color: darkMode ? Colors.white : Colors.black),
                        ),
                        child: Text(darkMode ? 'Light Mode' : 'Dark Mode',
                            style: TextStyle(
                                color: darkMode ? Colors.white : Colors.black)),
                        onPressed: () {
                          setState(() {
                            darkMode = !darkMode;
                          });
                        },
                      ),
                    ),
                  ),
                  SelectableText('Built by @megatunger',
                      style: Theme.of(context).textTheme.caption)
                ]),
          ),
        ),
      ), // This trailing comma makes auto-formatting nicer for build methods.
    );
  }

  void toastTitleSubtitle(BuildContext context) {
    final toast = Toast(
        title: "Lorem ipsum dolor sit amet, consectetur adipiscing elit",
        subtitle:
            "sed do eiusmod tempor incididunt ut labore et dolore magna aliqua",
        darkMode: darkMode);
    Toasta(context).toast(toast);
  }

  void toastNoFadeIn(BuildContext context) {
    final toast = Toast(
        title: "Lorem ipsum dolor sit amet, consectetur adipiscing elit",
        subtitle:
            "sed do eiusmod tempor incididunt ut labore et dolore magna aliqua",
        darkMode: darkMode,
        fadeInSubtitle: false);
    Toasta(context).toast(toast);
  }

  void toastSuccess(BuildContext context) {
    final toast = Toast(
        title: "Lorem ipsum dolor sit amet, consectetur adipiscing elit",
        subtitle:
            "sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris",
        status: ToastStatus.success,
        darkMode: darkMode);
    Toasta(context).toast(toast);
  }

  void toastFailed(BuildContext context) {
    final toast = Toast(
        title: "Lorem ipsum dolor sit amet, consectetur adipiscing elit",
        subtitle:
            "sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris",
        status: ToastStatus.failed,
        darkMode: darkMode);
    Toasta(context).toast(toast);
  }

  void toastWarning(BuildContext context) {
    final toast = Toast(
        title: "Lorem ipsum dolor sit amet, consectetur adipiscing elit",
        subtitle:
            "sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris",
        status: ToastStatus.warning,
        darkMode: darkMode);
    Toasta(context).toast(toast);
  }

  void toastInfo(BuildContext context) {
    final toast = Toast(
        title: "Lorem ipsum dolor sit amet, consectetur adipiscing elit",
        subtitle:
            "sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris",
        status: ToastStatus.info,
        darkMode: darkMode);
    Toasta(context).toast(toast);
  }

  void toastCustomDuration(BuildContext context) {
    final toast = Toast(
        title: "Lorem ipsum dolor sit amet, consectetur adipiscing elit",
        duration: const Duration(seconds: 5),
        darkMode: darkMode);
    Toasta(context).toast(toast);
  }
}
24
likes
70
pub points
58%
popularity

Publisher

verified publishermegatunger.com

Elegant Toast UI for Flutter Apps, inspired from iOS. Toasta had smooth animation & easily to customize

Homepage

Documentation

API reference

License

MIT (LICENSE)

Dependencies

flutter, marquee, provider

More

Packages that depend on toasta