How to create Toast in Flutter?











up vote
29
down vote

favorite
7












Can I create something similar to Toasts in Flutter ? Just a tiny notification window that is not directly in the face of the user and does not lock or fade the view behind it?










share|improve this question


























    up vote
    29
    down vote

    favorite
    7












    Can I create something similar to Toasts in Flutter ? Just a tiny notification window that is not directly in the face of the user and does not lock or fade the view behind it?










    share|improve this question
























      up vote
      29
      down vote

      favorite
      7









      up vote
      29
      down vote

      favorite
      7






      7





      Can I create something similar to Toasts in Flutter ? Just a tiny notification window that is not directly in the face of the user and does not lock or fade the view behind it?










      share|improve this question













      Can I create something similar to Toasts in Flutter ? Just a tiny notification window that is not directly in the face of the user and does not lock or fade the view behind it?







      flutter






      share|improve this question













      share|improve this question











      share|improve this question




      share|improve this question










      asked Aug 29 '17 at 20:54









      aziza

      6,75822242




      6,75822242
























          4 Answers
          4






          active

          oldest

          votes

















          up vote
          38
          down vote



          accepted










          You can access the parent ScaffoldState using Scaffold.of(context)



          Then do something like



          Scaffold.of(context).showSnackBar(new SnackBar(
          content: new Text("Sending Message"),
          ));


          Snackbars are the official "Toast" from material design. See https://material.io/design/components/snackbars.html#usage



          Here is a fully working example:



          enter image description here



          import 'package:flutter/material.dart';

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

          class MyApp extends StatelessWidget {
          @override
          Widget build(BuildContext context) {
          return MaterialApp(
          home: const Home(),
          );
          }
          }

          class Home extends StatelessWidget {
          const Home({
          Key key,
          }) : super(key: key);

          @override
          Widget build(BuildContext context) {
          return Scaffold(
          appBar: AppBar(
          title: const Text('Snack bar'),
          ),

          /// We use [Builder] here to use a [context] that is a descendant of [Scaffold]
          /// or else [Scaffold.of] will return null
          body: Builder(
          builder: (context) => Center(
          child: RaisedButton(
          child: const Text('Show toast'),
          onPressed: () => _showToast(context),
          ),
          ),
          ),
          );
          }

          void _showToast(BuildContext context) {
          final scaffold = Scaffold.of(context);
          scaffold.showSnackBar(
          SnackBar(
          content: const Text('Added to favorite'),
          action: SnackBarAction(
          label: 'UNDO', onPressed: scaffold.hideCurrentSnackBar),
          ),
          );
          }
          }





          share|improve this answer























          • How should this be wrapped inside an onPressed for example ? because I have tried it and nothing shows up on the screen.
            – aziza
            Aug 29 '17 at 21:41


















          up vote
          37
          down vote













          SnackBar is definitely the right class to use, as pointed out by Darky.



          snackbar



          One tricky thing about showSnackBar is getting to the ScaffoldState, if you're trying to call showSnackBar within the build method where you construct your Scaffold.



          You might see an error like this, which includes some text explaining how to solve the problem.



          ══╡ EXCEPTION CAUGHT BY GESTURE ╞═══════════════════════════════════════════════════════════════════
          The following assertion was thrown while handling a gesture:
          Scaffold.of() called with a context that does not contain a Scaffold.
          No Scaffold ancestor could be found starting from the context that was passed to Scaffold.of(). This
          usually happens when the context provided is from the same StatefulWidget as that whose build
          function actually creates the Scaffold widget being sought.
          There are several ways to avoid this problem. The simplest is to use a Builder to get a context that
          is "under" the Scaffold. For an example of this, please see the documentation for Scaffold.of():
          https://docs.flutter.io/flutter/material/Scaffold/of.html
          A more efficient solution is to split your build function into several widgets. This introduces a
          new context from which you can obtain the Scaffold. In this solution, you would have an outer widget
          that creates the Scaffold populated by instances of your new inner widgets, and then in these inner
          widgets you would use Scaffold.of().
          A less elegant but more expedient solution is assign a GlobalKey to the Scaffold, then use the
          key.currentState property to obtain the ScaffoldState rather than using the Scaffold.of() function.
          The context used was:
          MyHomePage
          When the exception was thrown, this was the stack:
          #0 Scaffold.of (package:flutter/src/material/scaffold.dart:444:5)
          #1 MyHomePage.build.<anonymous closure> (/Users/jackson/Library/Developer/CoreSimulator/Devices/7072C907-DBAD-44FE-8F40-0257442C51D9/data/Containers/Data/Application/77FEC1A4-1453-442C-8208-96E0323DEFB2/tmp/so_scratch2Tkq9Jb/so_scratch2/lib/main.dart:23:24)
          #2 _InkResponseState._handleTap (package:flutter/src/material/ink_well.dart:323:14)
          #3 _InkResponseState.build.<anonymous closure> (package:flutter/src/material/ink_well.dart:375:30)
          #4 GestureRecognizer.invokeCallback (package:flutter/src/gestures/recognizer.dart:102:24)
          #5 TapGestureRecognizer._checkUp (package:flutter/src/gestures/tap.dart:149:9)
          #6 TapGestureRecognizer.acceptGesture (package:flutter/src/gestures/tap.dart:119:7)
          #7 GestureArenaManager.sweep (package:flutter/src/gestures/arena.dart:156:27)
          #8 BindingBase&SchedulerBinding&GestureBinding.handleEvent (package:flutter/src/gestures/binding.dart:147:20)
          #9 BindingBase&SchedulerBinding&GestureBinding.dispatchEvent (package:flutter/src/gestures/binding.dart:121:22)
          #10 BindingBase&SchedulerBinding&GestureBinding._handlePointerEvent (package:flutter/src/gestures/binding.dart:101:7)
          #11 BindingBase&SchedulerBinding&GestureBinding._flushPointerEventQueue (package:flutter/src/gestures/binding.dart:64:7)
          #12 BindingBase&SchedulerBinding&GestureBinding._handlePointerDataPacket (package:flutter/src/gestures/binding.dart:48:7)
          #13 _invoke1 (file:///b/build/slave/Mac_Engine/build/src/flutter/lib/ui/hooks.dart:100)
          #14 _dispatchPointerDataPacket (file:///b/build/slave/Mac_Engine/build/src/flutter/lib/ui/hooks.dart:58)
          Handler: onTap
          Recognizer:
          TapGestureRecognizer#69dbc(debugOwner: GestureDetector, state: ready)
          ════════════════════════════════════════════════════════════════════════════════════════════════════


          You can either pass a GlobalKey to your Scaffold constructor:



          class MyHomePage extends StatelessWidget {
          @override
          Widget build(BuildContext context) {
          final key = new GlobalKey<ScaffoldState>();
          return new Scaffold(
          key: key,
          floatingActionButton: new Builder(
          builder: (BuildContext context) {
          return new FloatingActionButton(
          onPressed: () {
          key.currentState.showSnackBar(new SnackBar(
          content: new Text("Sending Message"),
          ));
          },
          tooltip: 'Increment',
          child: new Icon(Icons.add),
          );
          }
          ),
          );
          }
          }


          Or you can use a Builder to create a BuildContext that is a child of the Scaffold.



          class MyHomePage extends StatelessWidget {
          @override
          Widget build(BuildContext context) {
          return new Scaffold(
          floatingActionButton: new Builder(
          builder: (BuildContext context) {
          return new FloatingActionButton(
          onPressed: () {
          Scaffold.of(context).showSnackBar(new SnackBar(
          content: new Text("Sending Message"),
          ));
          },
          tooltip: 'Increment',
          child: new Icon(Icons.add),
          );
          }
          ),
          );
          }
          }


          Finally, you could split your widget into multiple classes, which is the best long-term approach.






          share|improve this answer





















          • Tried GlobalKey, Now I am getting this exception: I/flutter ( 4965): The following assertion was thrown while handling a gesture: I/flutter ( 4965): type 'LabeledGlobalKey<ScaffoldState>' is not a subtype of type 'BuildContext' of 'context' where I/flutter ( 4965): LabeledGlobalKey is from package:flutter/src/widgets/framework.dart I/flutter ( 4965): ScaffoldState is from package:flutter/src/material/scaffold.dart I/flutter ( 4965): Scaffold is from package:flutter/src/material/scaffold.dart I/flutter ( 4965): BuildContext is from package:flutter/src/widgets/framework.dart
            – Shajeel Afzal
            Sep 10 '17 at 11:13












          • It looks like you're using a GlobalKey as an argument where a BuildContext is expected. I can't help you debug this further without seeing more of your code. Please post the line of code that is throwing the exception, probably you just aren't using the right arguments.
            – Collin Jackson
            Sep 10 '17 at 22:01










          • I can confirm that using the Builder option you gave works well. Ran into this issue and this solved it for me.
            – SeaFuzz
            May 25 at 23:54


















          up vote
          22
          down vote













          use this plugin



          Fluttertoast.showToast(
          msg: "This is Toast messaget",
          toastLength: Toast.LENGTH_SHORT,
          gravity: ToastGravity.CENTER,
          timeInSecForIos: 1
          );


          enter image description here






          share|improve this answer





















          • You have to first add the Fluttertoast dependecy in the pubspec.yaml file. Link to the dependency is here [link] (pub.dartlang.org/packages/fluttertoast). Then you can use the above code
            – Fritz_Playmaker
            Aug 15 at 15:06




















          up vote
          3
          down vote













          to show toast message you can use flutterToast plugin to use this plugin you have to




          1. Add this dependency to your pubspec.yaml file :- fluttertoast: ^2.0.7

          2. to get the package you have to run this command :- $ flutter packages get

          3. import the package :- import 'package:fluttertoast/fluttertoast.dart';


          use it like this



          Fluttertoast.showToast(
          msg: "your message",
          toastLength: Toast.LENGTH_SHORT,
          gravity: ToastGravity.BOTTOM // also possible "TOP" and "CENTER"
          bgcolor: "#e74c3c",
          textcolor: '#ffffff');


          For more info check this






          share|improve this answer



















          • 3




            Instead of answering the same answer posted by someone else, you could have upvoted his answer.
            – CopsOnRoad
            Oct 29 at 6:23






          • 1




            I think my answer is more helpful than the previous one
            – Virendra Varma
            Nov 9 at 7:33













          Your Answer






          StackExchange.ifUsing("editor", function () {
          StackExchange.using("externalEditor", function () {
          StackExchange.using("snippets", function () {
          StackExchange.snippets.init();
          });
          });
          }, "code-snippets");

          StackExchange.ready(function() {
          var channelOptions = {
          tags: "".split(" "),
          id: "1"
          };
          initTagRenderer("".split(" "), "".split(" "), channelOptions);

          StackExchange.using("externalEditor", function() {
          // Have to fire editor after snippets, if snippets enabled
          if (StackExchange.settings.snippets.snippetsEnabled) {
          StackExchange.using("snippets", function() {
          createEditor();
          });
          }
          else {
          createEditor();
          }
          });

          function createEditor() {
          StackExchange.prepareEditor({
          heartbeatType: 'answer',
          convertImagesToLinks: true,
          noModals: true,
          showLowRepImageUploadWarning: true,
          reputationToPostImages: 10,
          bindNavPrevention: true,
          postfix: "",
          imageUploader: {
          brandingHtml: "Powered by u003ca class="icon-imgur-white" href="https://imgur.com/"u003eu003c/au003e",
          contentPolicyHtml: "User contributions licensed under u003ca href="https://creativecommons.org/licenses/by-sa/3.0/"u003ecc by-sa 3.0 with attribution requiredu003c/au003e u003ca href="https://stackoverflow.com/legal/content-policy"u003e(content policy)u003c/au003e",
          allowUrls: true
          },
          onDemand: true,
          discardSelector: ".discard-answer"
          ,immediatelyShowMarkdownHelp:true
          });


          }
          });














          draft saved

          draft discarded


















          StackExchange.ready(
          function () {
          StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f45948168%2fhow-to-create-toast-in-flutter%23new-answer', 'question_page');
          }
          );

          Post as a guest















          Required, but never shown

























          4 Answers
          4






          active

          oldest

          votes








          4 Answers
          4






          active

          oldest

          votes









          active

          oldest

          votes






          active

          oldest

          votes








          up vote
          38
          down vote



          accepted










          You can access the parent ScaffoldState using Scaffold.of(context)



          Then do something like



          Scaffold.of(context).showSnackBar(new SnackBar(
          content: new Text("Sending Message"),
          ));


          Snackbars are the official "Toast" from material design. See https://material.io/design/components/snackbars.html#usage



          Here is a fully working example:



          enter image description here



          import 'package:flutter/material.dart';

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

          class MyApp extends StatelessWidget {
          @override
          Widget build(BuildContext context) {
          return MaterialApp(
          home: const Home(),
          );
          }
          }

          class Home extends StatelessWidget {
          const Home({
          Key key,
          }) : super(key: key);

          @override
          Widget build(BuildContext context) {
          return Scaffold(
          appBar: AppBar(
          title: const Text('Snack bar'),
          ),

          /// We use [Builder] here to use a [context] that is a descendant of [Scaffold]
          /// or else [Scaffold.of] will return null
          body: Builder(
          builder: (context) => Center(
          child: RaisedButton(
          child: const Text('Show toast'),
          onPressed: () => _showToast(context),
          ),
          ),
          ),
          );
          }

          void _showToast(BuildContext context) {
          final scaffold = Scaffold.of(context);
          scaffold.showSnackBar(
          SnackBar(
          content: const Text('Added to favorite'),
          action: SnackBarAction(
          label: 'UNDO', onPressed: scaffold.hideCurrentSnackBar),
          ),
          );
          }
          }





          share|improve this answer























          • How should this be wrapped inside an onPressed for example ? because I have tried it and nothing shows up on the screen.
            – aziza
            Aug 29 '17 at 21:41















          up vote
          38
          down vote



          accepted










          You can access the parent ScaffoldState using Scaffold.of(context)



          Then do something like



          Scaffold.of(context).showSnackBar(new SnackBar(
          content: new Text("Sending Message"),
          ));


          Snackbars are the official "Toast" from material design. See https://material.io/design/components/snackbars.html#usage



          Here is a fully working example:



          enter image description here



          import 'package:flutter/material.dart';

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

          class MyApp extends StatelessWidget {
          @override
          Widget build(BuildContext context) {
          return MaterialApp(
          home: const Home(),
          );
          }
          }

          class Home extends StatelessWidget {
          const Home({
          Key key,
          }) : super(key: key);

          @override
          Widget build(BuildContext context) {
          return Scaffold(
          appBar: AppBar(
          title: const Text('Snack bar'),
          ),

          /// We use [Builder] here to use a [context] that is a descendant of [Scaffold]
          /// or else [Scaffold.of] will return null
          body: Builder(
          builder: (context) => Center(
          child: RaisedButton(
          child: const Text('Show toast'),
          onPressed: () => _showToast(context),
          ),
          ),
          ),
          );
          }

          void _showToast(BuildContext context) {
          final scaffold = Scaffold.of(context);
          scaffold.showSnackBar(
          SnackBar(
          content: const Text('Added to favorite'),
          action: SnackBarAction(
          label: 'UNDO', onPressed: scaffold.hideCurrentSnackBar),
          ),
          );
          }
          }





          share|improve this answer























          • How should this be wrapped inside an onPressed for example ? because I have tried it and nothing shows up on the screen.
            – aziza
            Aug 29 '17 at 21:41













          up vote
          38
          down vote



          accepted







          up vote
          38
          down vote



          accepted






          You can access the parent ScaffoldState using Scaffold.of(context)



          Then do something like



          Scaffold.of(context).showSnackBar(new SnackBar(
          content: new Text("Sending Message"),
          ));


          Snackbars are the official "Toast" from material design. See https://material.io/design/components/snackbars.html#usage



          Here is a fully working example:



          enter image description here



          import 'package:flutter/material.dart';

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

          class MyApp extends StatelessWidget {
          @override
          Widget build(BuildContext context) {
          return MaterialApp(
          home: const Home(),
          );
          }
          }

          class Home extends StatelessWidget {
          const Home({
          Key key,
          }) : super(key: key);

          @override
          Widget build(BuildContext context) {
          return Scaffold(
          appBar: AppBar(
          title: const Text('Snack bar'),
          ),

          /// We use [Builder] here to use a [context] that is a descendant of [Scaffold]
          /// or else [Scaffold.of] will return null
          body: Builder(
          builder: (context) => Center(
          child: RaisedButton(
          child: const Text('Show toast'),
          onPressed: () => _showToast(context),
          ),
          ),
          ),
          );
          }

          void _showToast(BuildContext context) {
          final scaffold = Scaffold.of(context);
          scaffold.showSnackBar(
          SnackBar(
          content: const Text('Added to favorite'),
          action: SnackBarAction(
          label: 'UNDO', onPressed: scaffold.hideCurrentSnackBar),
          ),
          );
          }
          }





          share|improve this answer














          You can access the parent ScaffoldState using Scaffold.of(context)



          Then do something like



          Scaffold.of(context).showSnackBar(new SnackBar(
          content: new Text("Sending Message"),
          ));


          Snackbars are the official "Toast" from material design. See https://material.io/design/components/snackbars.html#usage



          Here is a fully working example:



          enter image description here



          import 'package:flutter/material.dart';

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

          class MyApp extends StatelessWidget {
          @override
          Widget build(BuildContext context) {
          return MaterialApp(
          home: const Home(),
          );
          }
          }

          class Home extends StatelessWidget {
          const Home({
          Key key,
          }) : super(key: key);

          @override
          Widget build(BuildContext context) {
          return Scaffold(
          appBar: AppBar(
          title: const Text('Snack bar'),
          ),

          /// We use [Builder] here to use a [context] that is a descendant of [Scaffold]
          /// or else [Scaffold.of] will return null
          body: Builder(
          builder: (context) => Center(
          child: RaisedButton(
          child: const Text('Show toast'),
          onPressed: () => _showToast(context),
          ),
          ),
          ),
          );
          }

          void _showToast(BuildContext context) {
          final scaffold = Scaffold.of(context);
          scaffold.showSnackBar(
          SnackBar(
          content: const Text('Added to favorite'),
          action: SnackBarAction(
          label: 'UNDO', onPressed: scaffold.hideCurrentSnackBar),
          ),
          );
          }
          }






          share|improve this answer














          share|improve this answer



          share|improve this answer








          edited Sep 13 at 13:31

























          answered Aug 29 '17 at 21:00









          Rémi Rousselet

          23k24078




          23k24078












          • How should this be wrapped inside an onPressed for example ? because I have tried it and nothing shows up on the screen.
            – aziza
            Aug 29 '17 at 21:41


















          • How should this be wrapped inside an onPressed for example ? because I have tried it and nothing shows up on the screen.
            – aziza
            Aug 29 '17 at 21:41
















          How should this be wrapped inside an onPressed for example ? because I have tried it and nothing shows up on the screen.
          – aziza
          Aug 29 '17 at 21:41




          How should this be wrapped inside an onPressed for example ? because I have tried it and nothing shows up on the screen.
          – aziza
          Aug 29 '17 at 21:41












          up vote
          37
          down vote













          SnackBar is definitely the right class to use, as pointed out by Darky.



          snackbar



          One tricky thing about showSnackBar is getting to the ScaffoldState, if you're trying to call showSnackBar within the build method where you construct your Scaffold.



          You might see an error like this, which includes some text explaining how to solve the problem.



          ══╡ EXCEPTION CAUGHT BY GESTURE ╞═══════════════════════════════════════════════════════════════════
          The following assertion was thrown while handling a gesture:
          Scaffold.of() called with a context that does not contain a Scaffold.
          No Scaffold ancestor could be found starting from the context that was passed to Scaffold.of(). This
          usually happens when the context provided is from the same StatefulWidget as that whose build
          function actually creates the Scaffold widget being sought.
          There are several ways to avoid this problem. The simplest is to use a Builder to get a context that
          is "under" the Scaffold. For an example of this, please see the documentation for Scaffold.of():
          https://docs.flutter.io/flutter/material/Scaffold/of.html
          A more efficient solution is to split your build function into several widgets. This introduces a
          new context from which you can obtain the Scaffold. In this solution, you would have an outer widget
          that creates the Scaffold populated by instances of your new inner widgets, and then in these inner
          widgets you would use Scaffold.of().
          A less elegant but more expedient solution is assign a GlobalKey to the Scaffold, then use the
          key.currentState property to obtain the ScaffoldState rather than using the Scaffold.of() function.
          The context used was:
          MyHomePage
          When the exception was thrown, this was the stack:
          #0 Scaffold.of (package:flutter/src/material/scaffold.dart:444:5)
          #1 MyHomePage.build.<anonymous closure> (/Users/jackson/Library/Developer/CoreSimulator/Devices/7072C907-DBAD-44FE-8F40-0257442C51D9/data/Containers/Data/Application/77FEC1A4-1453-442C-8208-96E0323DEFB2/tmp/so_scratch2Tkq9Jb/so_scratch2/lib/main.dart:23:24)
          #2 _InkResponseState._handleTap (package:flutter/src/material/ink_well.dart:323:14)
          #3 _InkResponseState.build.<anonymous closure> (package:flutter/src/material/ink_well.dart:375:30)
          #4 GestureRecognizer.invokeCallback (package:flutter/src/gestures/recognizer.dart:102:24)
          #5 TapGestureRecognizer._checkUp (package:flutter/src/gestures/tap.dart:149:9)
          #6 TapGestureRecognizer.acceptGesture (package:flutter/src/gestures/tap.dart:119:7)
          #7 GestureArenaManager.sweep (package:flutter/src/gestures/arena.dart:156:27)
          #8 BindingBase&SchedulerBinding&GestureBinding.handleEvent (package:flutter/src/gestures/binding.dart:147:20)
          #9 BindingBase&SchedulerBinding&GestureBinding.dispatchEvent (package:flutter/src/gestures/binding.dart:121:22)
          #10 BindingBase&SchedulerBinding&GestureBinding._handlePointerEvent (package:flutter/src/gestures/binding.dart:101:7)
          #11 BindingBase&SchedulerBinding&GestureBinding._flushPointerEventQueue (package:flutter/src/gestures/binding.dart:64:7)
          #12 BindingBase&SchedulerBinding&GestureBinding._handlePointerDataPacket (package:flutter/src/gestures/binding.dart:48:7)
          #13 _invoke1 (file:///b/build/slave/Mac_Engine/build/src/flutter/lib/ui/hooks.dart:100)
          #14 _dispatchPointerDataPacket (file:///b/build/slave/Mac_Engine/build/src/flutter/lib/ui/hooks.dart:58)
          Handler: onTap
          Recognizer:
          TapGestureRecognizer#69dbc(debugOwner: GestureDetector, state: ready)
          ════════════════════════════════════════════════════════════════════════════════════════════════════


          You can either pass a GlobalKey to your Scaffold constructor:



          class MyHomePage extends StatelessWidget {
          @override
          Widget build(BuildContext context) {
          final key = new GlobalKey<ScaffoldState>();
          return new Scaffold(
          key: key,
          floatingActionButton: new Builder(
          builder: (BuildContext context) {
          return new FloatingActionButton(
          onPressed: () {
          key.currentState.showSnackBar(new SnackBar(
          content: new Text("Sending Message"),
          ));
          },
          tooltip: 'Increment',
          child: new Icon(Icons.add),
          );
          }
          ),
          );
          }
          }


          Or you can use a Builder to create a BuildContext that is a child of the Scaffold.



          class MyHomePage extends StatelessWidget {
          @override
          Widget build(BuildContext context) {
          return new Scaffold(
          floatingActionButton: new Builder(
          builder: (BuildContext context) {
          return new FloatingActionButton(
          onPressed: () {
          Scaffold.of(context).showSnackBar(new SnackBar(
          content: new Text("Sending Message"),
          ));
          },
          tooltip: 'Increment',
          child: new Icon(Icons.add),
          );
          }
          ),
          );
          }
          }


          Finally, you could split your widget into multiple classes, which is the best long-term approach.






          share|improve this answer





















          • Tried GlobalKey, Now I am getting this exception: I/flutter ( 4965): The following assertion was thrown while handling a gesture: I/flutter ( 4965): type 'LabeledGlobalKey<ScaffoldState>' is not a subtype of type 'BuildContext' of 'context' where I/flutter ( 4965): LabeledGlobalKey is from package:flutter/src/widgets/framework.dart I/flutter ( 4965): ScaffoldState is from package:flutter/src/material/scaffold.dart I/flutter ( 4965): Scaffold is from package:flutter/src/material/scaffold.dart I/flutter ( 4965): BuildContext is from package:flutter/src/widgets/framework.dart
            – Shajeel Afzal
            Sep 10 '17 at 11:13












          • It looks like you're using a GlobalKey as an argument where a BuildContext is expected. I can't help you debug this further without seeing more of your code. Please post the line of code that is throwing the exception, probably you just aren't using the right arguments.
            – Collin Jackson
            Sep 10 '17 at 22:01










          • I can confirm that using the Builder option you gave works well. Ran into this issue and this solved it for me.
            – SeaFuzz
            May 25 at 23:54















          up vote
          37
          down vote













          SnackBar is definitely the right class to use, as pointed out by Darky.



          snackbar



          One tricky thing about showSnackBar is getting to the ScaffoldState, if you're trying to call showSnackBar within the build method where you construct your Scaffold.



          You might see an error like this, which includes some text explaining how to solve the problem.



          ══╡ EXCEPTION CAUGHT BY GESTURE ╞═══════════════════════════════════════════════════════════════════
          The following assertion was thrown while handling a gesture:
          Scaffold.of() called with a context that does not contain a Scaffold.
          No Scaffold ancestor could be found starting from the context that was passed to Scaffold.of(). This
          usually happens when the context provided is from the same StatefulWidget as that whose build
          function actually creates the Scaffold widget being sought.
          There are several ways to avoid this problem. The simplest is to use a Builder to get a context that
          is "under" the Scaffold. For an example of this, please see the documentation for Scaffold.of():
          https://docs.flutter.io/flutter/material/Scaffold/of.html
          A more efficient solution is to split your build function into several widgets. This introduces a
          new context from which you can obtain the Scaffold. In this solution, you would have an outer widget
          that creates the Scaffold populated by instances of your new inner widgets, and then in these inner
          widgets you would use Scaffold.of().
          A less elegant but more expedient solution is assign a GlobalKey to the Scaffold, then use the
          key.currentState property to obtain the ScaffoldState rather than using the Scaffold.of() function.
          The context used was:
          MyHomePage
          When the exception was thrown, this was the stack:
          #0 Scaffold.of (package:flutter/src/material/scaffold.dart:444:5)
          #1 MyHomePage.build.<anonymous closure> (/Users/jackson/Library/Developer/CoreSimulator/Devices/7072C907-DBAD-44FE-8F40-0257442C51D9/data/Containers/Data/Application/77FEC1A4-1453-442C-8208-96E0323DEFB2/tmp/so_scratch2Tkq9Jb/so_scratch2/lib/main.dart:23:24)
          #2 _InkResponseState._handleTap (package:flutter/src/material/ink_well.dart:323:14)
          #3 _InkResponseState.build.<anonymous closure> (package:flutter/src/material/ink_well.dart:375:30)
          #4 GestureRecognizer.invokeCallback (package:flutter/src/gestures/recognizer.dart:102:24)
          #5 TapGestureRecognizer._checkUp (package:flutter/src/gestures/tap.dart:149:9)
          #6 TapGestureRecognizer.acceptGesture (package:flutter/src/gestures/tap.dart:119:7)
          #7 GestureArenaManager.sweep (package:flutter/src/gestures/arena.dart:156:27)
          #8 BindingBase&SchedulerBinding&GestureBinding.handleEvent (package:flutter/src/gestures/binding.dart:147:20)
          #9 BindingBase&SchedulerBinding&GestureBinding.dispatchEvent (package:flutter/src/gestures/binding.dart:121:22)
          #10 BindingBase&SchedulerBinding&GestureBinding._handlePointerEvent (package:flutter/src/gestures/binding.dart:101:7)
          #11 BindingBase&SchedulerBinding&GestureBinding._flushPointerEventQueue (package:flutter/src/gestures/binding.dart:64:7)
          #12 BindingBase&SchedulerBinding&GestureBinding._handlePointerDataPacket (package:flutter/src/gestures/binding.dart:48:7)
          #13 _invoke1 (file:///b/build/slave/Mac_Engine/build/src/flutter/lib/ui/hooks.dart:100)
          #14 _dispatchPointerDataPacket (file:///b/build/slave/Mac_Engine/build/src/flutter/lib/ui/hooks.dart:58)
          Handler: onTap
          Recognizer:
          TapGestureRecognizer#69dbc(debugOwner: GestureDetector, state: ready)
          ════════════════════════════════════════════════════════════════════════════════════════════════════


          You can either pass a GlobalKey to your Scaffold constructor:



          class MyHomePage extends StatelessWidget {
          @override
          Widget build(BuildContext context) {
          final key = new GlobalKey<ScaffoldState>();
          return new Scaffold(
          key: key,
          floatingActionButton: new Builder(
          builder: (BuildContext context) {
          return new FloatingActionButton(
          onPressed: () {
          key.currentState.showSnackBar(new SnackBar(
          content: new Text("Sending Message"),
          ));
          },
          tooltip: 'Increment',
          child: new Icon(Icons.add),
          );
          }
          ),
          );
          }
          }


          Or you can use a Builder to create a BuildContext that is a child of the Scaffold.



          class MyHomePage extends StatelessWidget {
          @override
          Widget build(BuildContext context) {
          return new Scaffold(
          floatingActionButton: new Builder(
          builder: (BuildContext context) {
          return new FloatingActionButton(
          onPressed: () {
          Scaffold.of(context).showSnackBar(new SnackBar(
          content: new Text("Sending Message"),
          ));
          },
          tooltip: 'Increment',
          child: new Icon(Icons.add),
          );
          }
          ),
          );
          }
          }


          Finally, you could split your widget into multiple classes, which is the best long-term approach.






          share|improve this answer





















          • Tried GlobalKey, Now I am getting this exception: I/flutter ( 4965): The following assertion was thrown while handling a gesture: I/flutter ( 4965): type 'LabeledGlobalKey<ScaffoldState>' is not a subtype of type 'BuildContext' of 'context' where I/flutter ( 4965): LabeledGlobalKey is from package:flutter/src/widgets/framework.dart I/flutter ( 4965): ScaffoldState is from package:flutter/src/material/scaffold.dart I/flutter ( 4965): Scaffold is from package:flutter/src/material/scaffold.dart I/flutter ( 4965): BuildContext is from package:flutter/src/widgets/framework.dart
            – Shajeel Afzal
            Sep 10 '17 at 11:13












          • It looks like you're using a GlobalKey as an argument where a BuildContext is expected. I can't help you debug this further without seeing more of your code. Please post the line of code that is throwing the exception, probably you just aren't using the right arguments.
            – Collin Jackson
            Sep 10 '17 at 22:01










          • I can confirm that using the Builder option you gave works well. Ran into this issue and this solved it for me.
            – SeaFuzz
            May 25 at 23:54













          up vote
          37
          down vote










          up vote
          37
          down vote









          SnackBar is definitely the right class to use, as pointed out by Darky.



          snackbar



          One tricky thing about showSnackBar is getting to the ScaffoldState, if you're trying to call showSnackBar within the build method where you construct your Scaffold.



          You might see an error like this, which includes some text explaining how to solve the problem.



          ══╡ EXCEPTION CAUGHT BY GESTURE ╞═══════════════════════════════════════════════════════════════════
          The following assertion was thrown while handling a gesture:
          Scaffold.of() called with a context that does not contain a Scaffold.
          No Scaffold ancestor could be found starting from the context that was passed to Scaffold.of(). This
          usually happens when the context provided is from the same StatefulWidget as that whose build
          function actually creates the Scaffold widget being sought.
          There are several ways to avoid this problem. The simplest is to use a Builder to get a context that
          is "under" the Scaffold. For an example of this, please see the documentation for Scaffold.of():
          https://docs.flutter.io/flutter/material/Scaffold/of.html
          A more efficient solution is to split your build function into several widgets. This introduces a
          new context from which you can obtain the Scaffold. In this solution, you would have an outer widget
          that creates the Scaffold populated by instances of your new inner widgets, and then in these inner
          widgets you would use Scaffold.of().
          A less elegant but more expedient solution is assign a GlobalKey to the Scaffold, then use the
          key.currentState property to obtain the ScaffoldState rather than using the Scaffold.of() function.
          The context used was:
          MyHomePage
          When the exception was thrown, this was the stack:
          #0 Scaffold.of (package:flutter/src/material/scaffold.dart:444:5)
          #1 MyHomePage.build.<anonymous closure> (/Users/jackson/Library/Developer/CoreSimulator/Devices/7072C907-DBAD-44FE-8F40-0257442C51D9/data/Containers/Data/Application/77FEC1A4-1453-442C-8208-96E0323DEFB2/tmp/so_scratch2Tkq9Jb/so_scratch2/lib/main.dart:23:24)
          #2 _InkResponseState._handleTap (package:flutter/src/material/ink_well.dart:323:14)
          #3 _InkResponseState.build.<anonymous closure> (package:flutter/src/material/ink_well.dart:375:30)
          #4 GestureRecognizer.invokeCallback (package:flutter/src/gestures/recognizer.dart:102:24)
          #5 TapGestureRecognizer._checkUp (package:flutter/src/gestures/tap.dart:149:9)
          #6 TapGestureRecognizer.acceptGesture (package:flutter/src/gestures/tap.dart:119:7)
          #7 GestureArenaManager.sweep (package:flutter/src/gestures/arena.dart:156:27)
          #8 BindingBase&SchedulerBinding&GestureBinding.handleEvent (package:flutter/src/gestures/binding.dart:147:20)
          #9 BindingBase&SchedulerBinding&GestureBinding.dispatchEvent (package:flutter/src/gestures/binding.dart:121:22)
          #10 BindingBase&SchedulerBinding&GestureBinding._handlePointerEvent (package:flutter/src/gestures/binding.dart:101:7)
          #11 BindingBase&SchedulerBinding&GestureBinding._flushPointerEventQueue (package:flutter/src/gestures/binding.dart:64:7)
          #12 BindingBase&SchedulerBinding&GestureBinding._handlePointerDataPacket (package:flutter/src/gestures/binding.dart:48:7)
          #13 _invoke1 (file:///b/build/slave/Mac_Engine/build/src/flutter/lib/ui/hooks.dart:100)
          #14 _dispatchPointerDataPacket (file:///b/build/slave/Mac_Engine/build/src/flutter/lib/ui/hooks.dart:58)
          Handler: onTap
          Recognizer:
          TapGestureRecognizer#69dbc(debugOwner: GestureDetector, state: ready)
          ════════════════════════════════════════════════════════════════════════════════════════════════════


          You can either pass a GlobalKey to your Scaffold constructor:



          class MyHomePage extends StatelessWidget {
          @override
          Widget build(BuildContext context) {
          final key = new GlobalKey<ScaffoldState>();
          return new Scaffold(
          key: key,
          floatingActionButton: new Builder(
          builder: (BuildContext context) {
          return new FloatingActionButton(
          onPressed: () {
          key.currentState.showSnackBar(new SnackBar(
          content: new Text("Sending Message"),
          ));
          },
          tooltip: 'Increment',
          child: new Icon(Icons.add),
          );
          }
          ),
          );
          }
          }


          Or you can use a Builder to create a BuildContext that is a child of the Scaffold.



          class MyHomePage extends StatelessWidget {
          @override
          Widget build(BuildContext context) {
          return new Scaffold(
          floatingActionButton: new Builder(
          builder: (BuildContext context) {
          return new FloatingActionButton(
          onPressed: () {
          Scaffold.of(context).showSnackBar(new SnackBar(
          content: new Text("Sending Message"),
          ));
          },
          tooltip: 'Increment',
          child: new Icon(Icons.add),
          );
          }
          ),
          );
          }
          }


          Finally, you could split your widget into multiple classes, which is the best long-term approach.






          share|improve this answer












          SnackBar is definitely the right class to use, as pointed out by Darky.



          snackbar



          One tricky thing about showSnackBar is getting to the ScaffoldState, if you're trying to call showSnackBar within the build method where you construct your Scaffold.



          You might see an error like this, which includes some text explaining how to solve the problem.



          ══╡ EXCEPTION CAUGHT BY GESTURE ╞═══════════════════════════════════════════════════════════════════
          The following assertion was thrown while handling a gesture:
          Scaffold.of() called with a context that does not contain a Scaffold.
          No Scaffold ancestor could be found starting from the context that was passed to Scaffold.of(). This
          usually happens when the context provided is from the same StatefulWidget as that whose build
          function actually creates the Scaffold widget being sought.
          There are several ways to avoid this problem. The simplest is to use a Builder to get a context that
          is "under" the Scaffold. For an example of this, please see the documentation for Scaffold.of():
          https://docs.flutter.io/flutter/material/Scaffold/of.html
          A more efficient solution is to split your build function into several widgets. This introduces a
          new context from which you can obtain the Scaffold. In this solution, you would have an outer widget
          that creates the Scaffold populated by instances of your new inner widgets, and then in these inner
          widgets you would use Scaffold.of().
          A less elegant but more expedient solution is assign a GlobalKey to the Scaffold, then use the
          key.currentState property to obtain the ScaffoldState rather than using the Scaffold.of() function.
          The context used was:
          MyHomePage
          When the exception was thrown, this was the stack:
          #0 Scaffold.of (package:flutter/src/material/scaffold.dart:444:5)
          #1 MyHomePage.build.<anonymous closure> (/Users/jackson/Library/Developer/CoreSimulator/Devices/7072C907-DBAD-44FE-8F40-0257442C51D9/data/Containers/Data/Application/77FEC1A4-1453-442C-8208-96E0323DEFB2/tmp/so_scratch2Tkq9Jb/so_scratch2/lib/main.dart:23:24)
          #2 _InkResponseState._handleTap (package:flutter/src/material/ink_well.dart:323:14)
          #3 _InkResponseState.build.<anonymous closure> (package:flutter/src/material/ink_well.dart:375:30)
          #4 GestureRecognizer.invokeCallback (package:flutter/src/gestures/recognizer.dart:102:24)
          #5 TapGestureRecognizer._checkUp (package:flutter/src/gestures/tap.dart:149:9)
          #6 TapGestureRecognizer.acceptGesture (package:flutter/src/gestures/tap.dart:119:7)
          #7 GestureArenaManager.sweep (package:flutter/src/gestures/arena.dart:156:27)
          #8 BindingBase&SchedulerBinding&GestureBinding.handleEvent (package:flutter/src/gestures/binding.dart:147:20)
          #9 BindingBase&SchedulerBinding&GestureBinding.dispatchEvent (package:flutter/src/gestures/binding.dart:121:22)
          #10 BindingBase&SchedulerBinding&GestureBinding._handlePointerEvent (package:flutter/src/gestures/binding.dart:101:7)
          #11 BindingBase&SchedulerBinding&GestureBinding._flushPointerEventQueue (package:flutter/src/gestures/binding.dart:64:7)
          #12 BindingBase&SchedulerBinding&GestureBinding._handlePointerDataPacket (package:flutter/src/gestures/binding.dart:48:7)
          #13 _invoke1 (file:///b/build/slave/Mac_Engine/build/src/flutter/lib/ui/hooks.dart:100)
          #14 _dispatchPointerDataPacket (file:///b/build/slave/Mac_Engine/build/src/flutter/lib/ui/hooks.dart:58)
          Handler: onTap
          Recognizer:
          TapGestureRecognizer#69dbc(debugOwner: GestureDetector, state: ready)
          ════════════════════════════════════════════════════════════════════════════════════════════════════


          You can either pass a GlobalKey to your Scaffold constructor:



          class MyHomePage extends StatelessWidget {
          @override
          Widget build(BuildContext context) {
          final key = new GlobalKey<ScaffoldState>();
          return new Scaffold(
          key: key,
          floatingActionButton: new Builder(
          builder: (BuildContext context) {
          return new FloatingActionButton(
          onPressed: () {
          key.currentState.showSnackBar(new SnackBar(
          content: new Text("Sending Message"),
          ));
          },
          tooltip: 'Increment',
          child: new Icon(Icons.add),
          );
          }
          ),
          );
          }
          }


          Or you can use a Builder to create a BuildContext that is a child of the Scaffold.



          class MyHomePage extends StatelessWidget {
          @override
          Widget build(BuildContext context) {
          return new Scaffold(
          floatingActionButton: new Builder(
          builder: (BuildContext context) {
          return new FloatingActionButton(
          onPressed: () {
          Scaffold.of(context).showSnackBar(new SnackBar(
          content: new Text("Sending Message"),
          ));
          },
          tooltip: 'Increment',
          child: new Icon(Icons.add),
          );
          }
          ),
          );
          }
          }


          Finally, you could split your widget into multiple classes, which is the best long-term approach.







          share|improve this answer












          share|improve this answer



          share|improve this answer










          answered Aug 29 '17 at 21:58









          Collin Jackson

          21.7k36783




          21.7k36783












          • Tried GlobalKey, Now I am getting this exception: I/flutter ( 4965): The following assertion was thrown while handling a gesture: I/flutter ( 4965): type 'LabeledGlobalKey<ScaffoldState>' is not a subtype of type 'BuildContext' of 'context' where I/flutter ( 4965): LabeledGlobalKey is from package:flutter/src/widgets/framework.dart I/flutter ( 4965): ScaffoldState is from package:flutter/src/material/scaffold.dart I/flutter ( 4965): Scaffold is from package:flutter/src/material/scaffold.dart I/flutter ( 4965): BuildContext is from package:flutter/src/widgets/framework.dart
            – Shajeel Afzal
            Sep 10 '17 at 11:13












          • It looks like you're using a GlobalKey as an argument where a BuildContext is expected. I can't help you debug this further without seeing more of your code. Please post the line of code that is throwing the exception, probably you just aren't using the right arguments.
            – Collin Jackson
            Sep 10 '17 at 22:01










          • I can confirm that using the Builder option you gave works well. Ran into this issue and this solved it for me.
            – SeaFuzz
            May 25 at 23:54


















          • Tried GlobalKey, Now I am getting this exception: I/flutter ( 4965): The following assertion was thrown while handling a gesture: I/flutter ( 4965): type 'LabeledGlobalKey<ScaffoldState>' is not a subtype of type 'BuildContext' of 'context' where I/flutter ( 4965): LabeledGlobalKey is from package:flutter/src/widgets/framework.dart I/flutter ( 4965): ScaffoldState is from package:flutter/src/material/scaffold.dart I/flutter ( 4965): Scaffold is from package:flutter/src/material/scaffold.dart I/flutter ( 4965): BuildContext is from package:flutter/src/widgets/framework.dart
            – Shajeel Afzal
            Sep 10 '17 at 11:13












          • It looks like you're using a GlobalKey as an argument where a BuildContext is expected. I can't help you debug this further without seeing more of your code. Please post the line of code that is throwing the exception, probably you just aren't using the right arguments.
            – Collin Jackson
            Sep 10 '17 at 22:01










          • I can confirm that using the Builder option you gave works well. Ran into this issue and this solved it for me.
            – SeaFuzz
            May 25 at 23:54
















          Tried GlobalKey, Now I am getting this exception: I/flutter ( 4965): The following assertion was thrown while handling a gesture: I/flutter ( 4965): type 'LabeledGlobalKey<ScaffoldState>' is not a subtype of type 'BuildContext' of 'context' where I/flutter ( 4965): LabeledGlobalKey is from package:flutter/src/widgets/framework.dart I/flutter ( 4965): ScaffoldState is from package:flutter/src/material/scaffold.dart I/flutter ( 4965): Scaffold is from package:flutter/src/material/scaffold.dart I/flutter ( 4965): BuildContext is from package:flutter/src/widgets/framework.dart
          – Shajeel Afzal
          Sep 10 '17 at 11:13






          Tried GlobalKey, Now I am getting this exception: I/flutter ( 4965): The following assertion was thrown while handling a gesture: I/flutter ( 4965): type 'LabeledGlobalKey<ScaffoldState>' is not a subtype of type 'BuildContext' of 'context' where I/flutter ( 4965): LabeledGlobalKey is from package:flutter/src/widgets/framework.dart I/flutter ( 4965): ScaffoldState is from package:flutter/src/material/scaffold.dart I/flutter ( 4965): Scaffold is from package:flutter/src/material/scaffold.dart I/flutter ( 4965): BuildContext is from package:flutter/src/widgets/framework.dart
          – Shajeel Afzal
          Sep 10 '17 at 11:13














          It looks like you're using a GlobalKey as an argument where a BuildContext is expected. I can't help you debug this further without seeing more of your code. Please post the line of code that is throwing the exception, probably you just aren't using the right arguments.
          – Collin Jackson
          Sep 10 '17 at 22:01




          It looks like you're using a GlobalKey as an argument where a BuildContext is expected. I can't help you debug this further without seeing more of your code. Please post the line of code that is throwing the exception, probably you just aren't using the right arguments.
          – Collin Jackson
          Sep 10 '17 at 22:01












          I can confirm that using the Builder option you gave works well. Ran into this issue and this solved it for me.
          – SeaFuzz
          May 25 at 23:54




          I can confirm that using the Builder option you gave works well. Ran into this issue and this solved it for me.
          – SeaFuzz
          May 25 at 23:54










          up vote
          22
          down vote













          use this plugin



          Fluttertoast.showToast(
          msg: "This is Toast messaget",
          toastLength: Toast.LENGTH_SHORT,
          gravity: ToastGravity.CENTER,
          timeInSecForIos: 1
          );


          enter image description here






          share|improve this answer





















          • You have to first add the Fluttertoast dependecy in the pubspec.yaml file. Link to the dependency is here [link] (pub.dartlang.org/packages/fluttertoast). Then you can use the above code
            – Fritz_Playmaker
            Aug 15 at 15:06

















          up vote
          22
          down vote













          use this plugin



          Fluttertoast.showToast(
          msg: "This is Toast messaget",
          toastLength: Toast.LENGTH_SHORT,
          gravity: ToastGravity.CENTER,
          timeInSecForIos: 1
          );


          enter image description here






          share|improve this answer





















          • You have to first add the Fluttertoast dependecy in the pubspec.yaml file. Link to the dependency is here [link] (pub.dartlang.org/packages/fluttertoast). Then you can use the above code
            – Fritz_Playmaker
            Aug 15 at 15:06















          up vote
          22
          down vote










          up vote
          22
          down vote









          use this plugin



          Fluttertoast.showToast(
          msg: "This is Toast messaget",
          toastLength: Toast.LENGTH_SHORT,
          gravity: ToastGravity.CENTER,
          timeInSecForIos: 1
          );


          enter image description here






          share|improve this answer












          use this plugin



          Fluttertoast.showToast(
          msg: "This is Toast messaget",
          toastLength: Toast.LENGTH_SHORT,
          gravity: ToastGravity.CENTER,
          timeInSecForIos: 1
          );


          enter image description here







          share|improve this answer












          share|improve this answer



          share|improve this answer










          answered Jun 8 at 9:44









          Raouf Rahiche

          3,3762925




          3,3762925












          • You have to first add the Fluttertoast dependecy in the pubspec.yaml file. Link to the dependency is here [link] (pub.dartlang.org/packages/fluttertoast). Then you can use the above code
            – Fritz_Playmaker
            Aug 15 at 15:06




















          • You have to first add the Fluttertoast dependecy in the pubspec.yaml file. Link to the dependency is here [link] (pub.dartlang.org/packages/fluttertoast). Then you can use the above code
            – Fritz_Playmaker
            Aug 15 at 15:06


















          You have to first add the Fluttertoast dependecy in the pubspec.yaml file. Link to the dependency is here [link] (pub.dartlang.org/packages/fluttertoast). Then you can use the above code
          – Fritz_Playmaker
          Aug 15 at 15:06






          You have to first add the Fluttertoast dependecy in the pubspec.yaml file. Link to the dependency is here [link] (pub.dartlang.org/packages/fluttertoast). Then you can use the above code
          – Fritz_Playmaker
          Aug 15 at 15:06












          up vote
          3
          down vote













          to show toast message you can use flutterToast plugin to use this plugin you have to




          1. Add this dependency to your pubspec.yaml file :- fluttertoast: ^2.0.7

          2. to get the package you have to run this command :- $ flutter packages get

          3. import the package :- import 'package:fluttertoast/fluttertoast.dart';


          use it like this



          Fluttertoast.showToast(
          msg: "your message",
          toastLength: Toast.LENGTH_SHORT,
          gravity: ToastGravity.BOTTOM // also possible "TOP" and "CENTER"
          bgcolor: "#e74c3c",
          textcolor: '#ffffff');


          For more info check this






          share|improve this answer



















          • 3




            Instead of answering the same answer posted by someone else, you could have upvoted his answer.
            – CopsOnRoad
            Oct 29 at 6:23






          • 1




            I think my answer is more helpful than the previous one
            – Virendra Varma
            Nov 9 at 7:33

















          up vote
          3
          down vote













          to show toast message you can use flutterToast plugin to use this plugin you have to




          1. Add this dependency to your pubspec.yaml file :- fluttertoast: ^2.0.7

          2. to get the package you have to run this command :- $ flutter packages get

          3. import the package :- import 'package:fluttertoast/fluttertoast.dart';


          use it like this



          Fluttertoast.showToast(
          msg: "your message",
          toastLength: Toast.LENGTH_SHORT,
          gravity: ToastGravity.BOTTOM // also possible "TOP" and "CENTER"
          bgcolor: "#e74c3c",
          textcolor: '#ffffff');


          For more info check this






          share|improve this answer



















          • 3




            Instead of answering the same answer posted by someone else, you could have upvoted his answer.
            – CopsOnRoad
            Oct 29 at 6:23






          • 1




            I think my answer is more helpful than the previous one
            – Virendra Varma
            Nov 9 at 7:33















          up vote
          3
          down vote










          up vote
          3
          down vote









          to show toast message you can use flutterToast plugin to use this plugin you have to




          1. Add this dependency to your pubspec.yaml file :- fluttertoast: ^2.0.7

          2. to get the package you have to run this command :- $ flutter packages get

          3. import the package :- import 'package:fluttertoast/fluttertoast.dart';


          use it like this



          Fluttertoast.showToast(
          msg: "your message",
          toastLength: Toast.LENGTH_SHORT,
          gravity: ToastGravity.BOTTOM // also possible "TOP" and "CENTER"
          bgcolor: "#e74c3c",
          textcolor: '#ffffff');


          For more info check this






          share|improve this answer














          to show toast message you can use flutterToast plugin to use this plugin you have to




          1. Add this dependency to your pubspec.yaml file :- fluttertoast: ^2.0.7

          2. to get the package you have to run this command :- $ flutter packages get

          3. import the package :- import 'package:fluttertoast/fluttertoast.dart';


          use it like this



          Fluttertoast.showToast(
          msg: "your message",
          toastLength: Toast.LENGTH_SHORT,
          gravity: ToastGravity.BOTTOM // also possible "TOP" and "CENTER"
          bgcolor: "#e74c3c",
          textcolor: '#ffffff');


          For more info check this







          share|improve this answer














          share|improve this answer



          share|improve this answer








          edited Nov 12 at 6:39









          Stnieder

          7312




          7312










          answered Sep 11 at 19:56









          Virendra Varma

          6819




          6819








          • 3




            Instead of answering the same answer posted by someone else, you could have upvoted his answer.
            – CopsOnRoad
            Oct 29 at 6:23






          • 1




            I think my answer is more helpful than the previous one
            – Virendra Varma
            Nov 9 at 7:33
















          • 3




            Instead of answering the same answer posted by someone else, you could have upvoted his answer.
            – CopsOnRoad
            Oct 29 at 6:23






          • 1




            I think my answer is more helpful than the previous one
            – Virendra Varma
            Nov 9 at 7:33










          3




          3




          Instead of answering the same answer posted by someone else, you could have upvoted his answer.
          – CopsOnRoad
          Oct 29 at 6:23




          Instead of answering the same answer posted by someone else, you could have upvoted his answer.
          – CopsOnRoad
          Oct 29 at 6:23




          1




          1




          I think my answer is more helpful than the previous one
          – Virendra Varma
          Nov 9 at 7:33






          I think my answer is more helpful than the previous one
          – Virendra Varma
          Nov 9 at 7:33




















          draft saved

          draft discarded




















































          Thanks for contributing an answer to Stack Overflow!


          • Please be sure to answer the question. Provide details and share your research!

          But avoid



          • Asking for help, clarification, or responding to other answers.

          • Making statements based on opinion; back them up with references or personal experience.


          To learn more, see our tips on writing great answers.





          Some of your past answers have not been well-received, and you're in danger of being blocked from answering.


          Please pay close attention to the following guidance:


          • Please be sure to answer the question. Provide details and share your research!

          But avoid



          • Asking for help, clarification, or responding to other answers.

          • Making statements based on opinion; back them up with references or personal experience.


          To learn more, see our tips on writing great answers.




          draft saved


          draft discarded














          StackExchange.ready(
          function () {
          StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f45948168%2fhow-to-create-toast-in-flutter%23new-answer', 'question_page');
          }
          );

          Post as a guest















          Required, but never shown





















































          Required, but never shown














          Required, but never shown












          Required, but never shown







          Required, but never shown

































          Required, but never shown














          Required, but never shown












          Required, but never shown







          Required, but never shown







          Popular posts from this blog

          List item for chat from Array inside array React Native

          Thiostrepton

          Caerphilly