[Flutter]AlertDialogの画面を再描画する方法

Flutter

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

AlertDialogの画面を再描画する方法を紹介します。

スポンサーリンク

方法

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

まず、AlertDialogをStatefulBuilderでラップします。

StatefulBuilder(
  builder: (BuildContext context, StateSetter setState) {
    return AlertDialog();
  },
)

そして、再描画したいタイミングで、「setState」を呼び出します。

return StatefulBuilder(
  builder: (BuildContext context, StateSetter setState) {
    return AlertDialog(
      actions: [
        TextButton(
          onPressed: () {
            setState(() {});
          },
          child: Text('Redraw'),
        )
      ],
    );
  },
);

以下は、実際の使用例です。

showDialog(
  context: context,
  builder: (BuildContext context) {
    var _count = 0;
    return StatefulBuilder(
      builder: (BuildContext context, StateSetter setState) {
        return AlertDialog(
          title: Text('Alert'),
          content: Text('count : $_count'),
          actions: [
            TextButton(
              onPressed: () {
                setState(() {
                  _count++;
                });
              },
              child: Text('Plus'),
            )
          ],
        );
      },
    );
  },
);

コメント

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