Flutter/alert
提供: 初心者エンジニアの簡易メモ
一択確認アラート
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, 'キャンセル選択');
},
));
});
