Flutterで SnackBar を使おうとしたら
Scaffold.of() called with a context that does not contain a Scaffold.
と怒られました。
これを回避するためには
- 内部で
SnackBar
を使いたいウィジェットをBuilder
でラップしてあげて、新しいBuildContext
を使う。 SnackBar
の代わりにfluttertoast
ライブラリに置き換える。
を行えばOKです。
SnackBarを引き続き使いたい場合の例
@override Widget build(BuildContext context) { return Scaffold( appBar: AppBar( title: Text('ほげ'), ), body: Builder( builder: (BuildContext context) { return Center( child: RaisedButton( child: Text('保存'), onPressed: () { Scaffold.of(context).showSnackBar(SnackBar( content: Text('SnackBarが正常に動作します'), )); }, ), ); }, ), ); }
created by Rinker
¥4,048
(2024/10/10 09:42:17時点 楽天市場調べ-詳細)
Flutterを学ぶなら世界最大級のオンライン学習サイトUdemyがおすすめ
Flutterを学ぶなら、世界最大級のオンライン学習サイトUdemy
がおすすめです。
通常ですと、各コース2万円程度するのですが、年がら年中割引セールスを行なっており、割引後価格はなんとおおむね1500円程度で受講することができます。
今すぐ受講しなくても、安い時に大量に買っておいて、あとでじっくり勉強するのがかしこいやり方だと思います。