どうも、ちょげ(@chogetarou)です。
SnackBarが閉じた時に処理をする方法を紹介します。
方法

SnackBarが閉じた時に処理をするには、closedとthenを使います。
具体的には、showSnackBarの後に続けて、「.closed.then(value{})」を指定します。
ScaffoldMessenger.of(context)
.showSnackBar(
SnackBar(
content: Text('Snackbar message'),
),
)
.closed
.then(
(value) {
//閉じた時の処理
},
);
thenの引数に指定する関数内の処理で、閉じた時の処理を指定します。
これでSnackBarが閉じた時に処理をすることが出来ます。
使用例
以下は、使用例です。
@override
Widget build(BuildContext context) {
return Scaffold(
body: Center(
child: ElevatedButton(
onPressed: () {
ScaffoldMessenger.of(context)
.showSnackBar(
SnackBar(
content: Text('Snackbar message'),
duration: Duration(seconds: 1),
),
)
.closed
.then(
(value) {
ScaffoldMessenger.of(context).showSnackBar(
SnackBar(
content: Text('Close'),
),
);
},
);
},
child: Text('Show'),
),
),
);
}
コメント