どうも、ちょげ(@chogetarou)です。
表示中のSnackBarを閉じる方法を紹介します。
方法

表示中のSnackBarを閉じるには、ScaffoldMessengerのhideCurrentSnackBarを使います。
具体的には、SnackBarを閉じる処理を追加したい場所で、ScaffoldMessenger.of(context).hideCurrentSnackBarを指定します。
ScaffoldMessenger.of(context).hideCurrentSnackBar(); //閉じる処理で指定
hideCurrentSnackBarが呼び出されると、SnackBarが閉じられます。
使用例
以下は、使用例です。
@override
Widget build(BuildContext context) {
return Scaffold(
body: Center(
child: Column(
children: [
ElevatedButton(
onPressed: () {
ScaffoldMessenger.of(context).showSnackBar(
SnackBar(
content: Text('Snackbar message'),
duration: Duration(seconds: 5),
),
);
},
child: Text('Show'),
),
ElevatedButton(
onPressed: () {
ScaffoldMessenger.of(context).hideCurrentSnackBar();
},
child: Text('Close'),
style: ElevatedButton.styleFrom(primary: Colors.pink),
)
],
mainAxisSize: MainAxisSize.min,
),
),
);
}
コメント