[Flutter]SnackBarが閉じた時に処理をするには?

Flutter

どうも、ちょげ(@chogetarou)です。

SnackBarが閉じた時に処理をする方法を紹介します。

スポンサーリンク

方法

インターフェース, インターネット, プログラム, ブラウザ, Www

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'),
        ),
      ),
    );
  }

コメント

タイトルとURLをコピーしました