「Flutter/alert」の版間の差分
提供: 初心者エンジニアの簡易メモ
(→一択確認アラート) |
(→複数選択) |
||
| 行78: | 行78: | ||
}, | }, | ||
); | ); | ||
| + | </pre> | ||
| + | |||
| + | ==iOSスタイルの複数選択== | ||
| + | <pre> | ||
| + | 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, 'キャン選択'); | ||
| + | }, | ||
| + | )); | ||
| + | }); | ||
</pre> | </pre> | ||
2019年12月6日 (金) 18:42時点における版
一択確認アラート
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, 'キャン選択');
},
));
});
