facebook twitter hatena line email

Flutter/alert

提供: 初心者エンジニアの簡易メモ
2019年12月6日 (金) 18:52時点におけるAdmin (トーク | 投稿記録)による版 (iOSスタイルの複数選択)

(差分) ←前の版 | 最新版 (差分) | 次の版→ (差分)
移動: 案内検索

一択確認アラート

showDialog(
  context: context,
  builder: (context) {
    return AlertDialog(
      title: Text(
          'タイトル', style: TextStyle(locale: Locale("ja", "JP"))),
      content: SingleChildScrollView(
        child: ListBody(
          children: <Widget>[
            Text('本文。',
                style: TextStyle(locale: Locale("ja", "JP"))),
          ],
        ),
      ),
      actions: <Widget>[
        FlatButton(
          child: Text('ok'),
          onPressed: () {
            Navigator.of(context).pop();
          },
        ),
      ],
    );
  },
);

OK/Cancel確認フォーム

showDialog(
  context: context,
  builder: (context) {
    return CupertinoAlertDialog(
      title: Text("タイトル1"),
      content: Text("本文1"),
      actions: <Widget>[
        CupertinoDialogAction(
          child: Text("Cancel"),
          isDestructiveAction: true,
          onPressed: () => Navigator.pop(context),
        ),
        CupertinoDialogAction(
          child: Text("OK"),
          onPressed: () => Navigator.pop(context),
        ),
      ],
    );
  },
);

参考:https://qiita.com/coka__01/items/4c1aea5fb1646e463f91

複数選択

 showDialog(
              context: context,
              builder: (context) {
                return SimpleDialog(
                  title: Text("タイトル"),
                  children: <Widget>[
                    SimpleDialogOption(
                      child: Text("編集", style: TextStyle(locale: Locale("ja", "JP"))),
                      onPressed: () => Navigator.pop(context),
                    ),
                    SimpleDialogOption(
                      child: Text("操作", style: TextStyle(locale: Locale("ja", "JP"))),
                      onPressed: () => Navigator.pop(context),
                    ),
                    SimpleDialogOption(
                      child: Text("削除", style: TextStyle(locale: Locale("ja", "JP"))),
                      onPressed: () => Navigator.pop(context),
                    ),
                ],
                );
              },
            );

iOSスタイルの複数選択

showCupertinoModalPopup(
    context: context,
    builder: (BuildContext context) {
      return CupertinoActionSheet(
          title: const Text('タイトル'),
          actions: <Widget>[
            CupertinoActionSheetAction(
              child: const Text('選択1'),
              onPressed: () {
                Navigator.pop(context, '選択1');
              },
            ),
            CupertinoActionSheetAction(
              child: const Text('選択2'),
              onPressed: () {
                Navigator.pop(context, '選択2');
              },
            ),
            CupertinoActionSheetAction(
              child: const Text('選択3'),
              onPressed: () {
                Navigator.pop(context, '選択3');
              },
            ),
          ],
          cancelButton: CupertinoActionSheetAction(
            child: const Text('キャンセル選択'),
            isDefaultAction: true,
            onPressed: () {
              Navigator.pop(context, 'キャンセル選択');
            },
          ));
    });

参考:https://qiita.com/nagahama/items/fe3b6ba210f9bfdb6408