facebook twitter hatena line email

「Flutter/alert」の版間の差分

提供: 初心者エンジニアの簡易メモ
移動: 案内検索
(複数選択)
(iOSスタイルの複数選択)
行108: 行108:
 
           ],
 
           ],
 
           cancelButton: CupertinoActionSheetAction(
 
           cancelButton: CupertinoActionSheetAction(
             child: const Text('キャン選択'),
+
             child: const Text('キャンセル選択'),
 
             isDefaultAction: true,
 
             isDefaultAction: true,
 
             onPressed: () {
 
             onPressed: () {
               Navigator.pop(context, 'キャン選択');
+
               Navigator.pop(context, 'キャンセル選択');
 
             },
 
             },
 
           ));
 
           ));
 
     });
 
     });
 
</pre>
 
</pre>

2019年12月6日 (金) 18:43時点における版

一択確認アラート

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, 'キャンセル選択');
            },
          ));
    });