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
(2026/01/20 02:26:24時点 楽天市場調べ-詳細)
Flutterを学ぶなら世界最大級のオンライン学習サイトUdemyがおすすめ
Flutterを学ぶなら、世界最大級のオンライン学習サイトUdemy
がおすすめです。
![]()
通常ですと、各コース2万円程度するのですが、年がら年中割引セールスを行なっており、割引後価格はなんとおおむね1500円程度で受講することができます。
今すぐ受講しなくても、安い時に大量に買っておいて、あとでじっくり勉強するのがかしこいやり方だと思います。