简单的材料设计对话框。
简单的对话框为用户提供了多个选项之间的选择。 一个简单的对话框有一个可选的标题,显示在选项上方。
选择通常使用SimpleDialogOption小部件表示。 如果使用其他小部件,请参阅contentsPadding以获取有关获取Material Design预期间距的约定的注释。
对于通知用户情况的对话框,请考虑使用AlertDialog。
通常作为子窗口小部件传递给showDialog,后者显示对话框。
Future<void> _askedToLead() async {
// showDialog 是一个async 异步方法 await 进行同步等待,switch 进行判断结果
switch (await showDialog<Department>(
context: context,
builder: (BuildContext context) {
return SimpleDialog(
// 内容
title: const Text('Select assignment'),
children: <Widget>[
// 选项
SimpleDialogOption(
onPressed: () {
// 路由返回,并返回结果
Navigator.pop(context, Department.treasury);
},
child: const Text('Treasury department'),
),
SimpleDialogOption(
onPressed: () { Navigator.pop(context, Department.state); },
child: const Text('State department'),
),
],
);
}
)) {
case Department.treasury:
// Let's go.
// ...
break;
case Department.state:
// ...
break;
}
}
执行结果:
构造函数和AlertDialog一致
contentsPadding:
默认情况下,顶部外间距为12像素,底部外间距为16像素。 这适用于左侧和右侧有24个像素填充的子项,以及顶部和底部有8个像素的填充,因此内容最终会从标题缩进20个像素,从底部缩进24个像素 ,两侧24像素。
原文地址
https://docs.flutter.io/flutter/material/SimpleDialog-class.html