Flutter Widget 之 SimpleDialog

简单的材料设计对话框。

简单的对话框为用户提供了多个选项之间的选择。 一个简单的对话框有一个可选的标题,显示在选项上方。

选择通常使用SimpleDialogOption小部件表示。 如果使用其他小部件,请参阅contentsPadding以获取有关获取Material Design预期间距的约定的注释。

对于通知用户情况的对话框,请考虑使用AlertDialog。

通常作为子窗口小部件传递给showDialog,后者显示对话框。

 

Future _askedToLead() async {
  // showDialog 是一个async 异步方法 await 进行同步等待,switch 进行判断结果
  switch (await showDialog(
    context: context,
    builder: (BuildContext context) {
      return SimpleDialog(
        // 内容
        title: const Text('Select assignment'),
        children: [
          // 选项
          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;
  }
}

执行结果:

Flutter Widget 之 SimpleDialog_第1张图片

 

构造函数和AlertDialog一致

 

contentsPadding:

默认情况下,顶部外间距为12像素,底部外间距为16像素。 这适用于左侧和右侧有24个像素填充的子项,以及顶部和底部有8个像素的填充,因此内容最终会从标题缩进20个像素,从底部缩进24个像素 ,两侧24像素。

 

原文地址

https://docs.flutter.io/flutter/material/SimpleDialog-class.html

 

 

你可能感兴趣的:(Flutter)