[Flutter]SnackBarに閉じるボタンを追加するには?

Flutter

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

SnackBarを閉じるボタンを、SnackBarの右側に表示する方法を紹介します。

スポンサーリンク

方法

コード, プログラミング, ハッキング, Html, ウェブ, データ

SnackBarに閉じるボタンを追加するには、引数「action」とScaffoldMessengerのhideCurrentSnackBarを使います。

まず、SnackBarの引数「action」にSnackBarActionを指定します。

SnackBarActionの引数「label」にテキスト、引数「onPressed」に関数を指定します。

そして、onPressedで呼び出す関数で、ScaffoldMessenger.of(context).hideCurrentSnackBarを指定します。

ScaffoldMessenger.of(context).showSnackBar(
  SnackBar(
    content: Text('Snackbar message'),
    action: SnackBarAction(
      label: '閉じる',
      onPressed: () {
        ScaffoldMessenger.of(context).hideCurrentSnackBar();
      },
    ),
  ),
);

ScaffoldMessenger.of(context).hideCurrentSnackBarを呼び出すことで、SnackBarを閉じることが出来ます。

使用例

以下は、使用例です。

  @override
  Widget build(BuildContext context) {
    return Scaffold(
      body: Center(
        child: ElevatedButton(
          onPressed: () {
            ScaffoldMessenger.of(context).showSnackBar(
              SnackBar(
                content: Text('Snackbar message'),
                action: SnackBarAction(
                  label: '閉じる',
                  onPressed: () {
                  ScaffoldMessenger.of(context).hideCurrentSnackBar();
                  },
                ),
                duration: Duration(seconds: 5),
              ),
            );
          },
          child: Text('Show'),
        ),
      ),
    );
  }

コメント

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