Flutter Widget 之 SimpleDialog

简单的材料设计对话框。

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

选择通常使用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

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值