🍣
ScaffoldMessenger エラー 解決方法
初めに
ScaffoldMessengerを使い、全画面に戻った際にSnackBarでアラートを表示しようとした際に、エラーが出た為、解決した方法を記述します。
解決方法
エラー内容
ScaffoldMessengerを使うときはcontext
に依存する為、なんかすごく大変ぽいです。
自分はこのここ理解できず、ScaffoldMessenger
を使った方法では解決できませんでした。
FlutterError (Looking up a deactivated widget's ancestor is unsafe.
At this point the state of the widget's element tree is no longer stable.
To safely refer to a widget's ancestor in its dispose() method, save a reference to the ancestor by calling dependOnInheritedWidgetOfExactType() in the widget's didChangeDependencies() method.)
解決: Fluttertoastパッケージを使う
Fluttertoast
を使う事で、context等の難しいことは考えず、今回の処理を行うことができます!
Fluttertostの追加
コマンドで下記を実行
flutter pub add fluttertoast
コードを記述
ScaffoldMessenger
の記述を下記のコードに書き換えればOKです!
Fluttertoast.showToast(
msg: "This is Center Short Toast",
toastLength: Toast.LENGTH_SHORT,
gravity: ToastGravity.CENTER,
timeInSecForIosWeb: 1,
backgroundColor: Colors.red,
textColor: Colors.white,
fontSize: 16.0
);
gravity
の部分を変更すればメッセージの表示位置を変更したり、backgroundColor
で背景色を変更もできるの、公式を参考にいじってみてください。
[参考URL]
終わりに
Twitterでも情報発信しておりますので、ぜひフォローお願い致します!
Discussion