AlertDialog实现不同风格的2次确认提示框-创新互联

这篇文章给大家分享的是AlertDialog实现不同风格的2次确认提示框的方法,相信大部分人都还没学会这个技能,为了让大家学会,给大家总结了以下内容,话不多说,一起往下看吧。

创新互联公司服务项目包括马村网站建设、马村网站制作、马村网页制作以及马村网络营销策划等。多年来,我们专注于互联网行业,利用自身积累的技术优势、行业经验、深度合作伙伴关系等,向广大中小型企业、政府机构等提供互联网行业的解决方案,马村网站推广取得了明显的社会效益与经济效益。目前,我们服务的客户以成都为中心已经辐射到马村省份的部分城市,未来相信会继续扩大服务区域并继续获得客户的支持与信任!

Flutter版本及Dart版本如下:

1.12.13+hotfix.5Dart版本: 2.7.0

当应用程序进行重要操作时经常需要用户进行2次确认,以避免用户的误操作,比如删除文件时,一般会弹出提示“是否要删除当前文件”,用户点击确认后才会进行删除操作,这时我们可以使用提示框(AlertDialog或者CupertinoAlertDialog)。

根据设计的不同,我们可以选择Material风格的AlertDialog或者Cupertino(ios)风格的CupertinoAlertDialog,

Material风格基础用法如下:

RaisedButton(
  child: Text('切换'),
  onPressed: () {
   showDialog(
     context: context,
     builder: (context) {
      return AlertDialog(
       title: Text('提示'),
       content: Text('确认删除吗?'),
       actions: [
        FlatButton(child: Text('取消'),onPressed: (){},),
        FlatButton(child: Text('确认'),onPressed: (){},),
       ],
      );
     });
  },
)

Material风格效果:

AlertDialog实现不同风格的2次确认提示框

Cupertino(ios)风格基础用法如下:

RaisedButton(
  child: Text('切换'),
  onPressed: () {
   showCupertinoDialog(
     context: context,
     builder: (context) {
      return CupertinoAlertDialog(
       title: Text('提示'),
       content: Text('确认删除吗?'),
       actions: [
        CupertinoDialogAction(child: Text('取消'),onPressed: (){},),
        CupertinoDialogAction(child: Text('确认'),onPressed: (){},),
       ],
      );
     });
  },
)

Cupertino(ios)风格效果如下:

AlertDialog实现不同风格的2次确认提示框

showDialogAlertDialog配合使用展示Material风格对话框,showCupertinoDialogCupertinoAlertDialog配合使用展示iOS风格对话框,showCupertinoDialog点击空白处是无法退出对话框的,而showDialog点击空白处默认退出对话框,barrierDismissible属性控制点击空白处的行为,用法如下:

showDialog(
   barrierDismissible: false,
   )

AlertDialog的属性相对比较丰富,可以设置title样式、content样式、背景颜色、阴影值,设置是形状:

AlertDialog(
  title: Text('提示'),
  content: Text('确认删除吗?'),
  backgroundColor: Colors.lightBlueAccent,
  elevation: 24,
  shape: RoundedRectangleBorder(borderRadius: BorderRadius.circular(50)),
  actions: [
   FlatButton(child: Text('取消'),onPressed: (){},),
   FlatButton(child: Text('确认'),onPressed: (){},),
  ],
)

AlertDialog实现不同风格的2次确认提示框

用户点击“取消”或者“确定”按钮后退出对话框,App需要知道知道用户选择了哪个选项,用法如下:

RaisedButton(
  child: Text('切换'),
  onPressed: () async {
   var result = await showDialog(
     context: context,
     builder: (context) {
      return AlertDialog(
       title: Text('提示'),
       content: Text('确认删除吗?'),
       actions: [
        FlatButton(
         child: Text('取消'),
         onPressed: () {
          Navigator.of(context).pop('cancel');
         },
        ),
        FlatButton(
         child: Text('确认'),
         onPressed: () {
          Navigator.of(context).pop('ok');
         },
        ),
       ],
      );
     });
   print('$result');
  },
)

如果你觉得系统提供的这2个风格的对话框不够个性,你可以试试SimpleDialog,用法和AlertDialog基本相同,如下:

SimpleDialog(
  title: Text('提示'),
  children: [
   Container(
    height: 80,
    alignment: Alignment.center,

    child: Text('确认删除吗?'),
   ),
   Divider(height: 1,),
   FlatButton(
    child: Text('取消'),
    onPressed: () {
     Navigator.of(context).pop('cancel');
    },
   ),
   Divider(height: 1,),
   FlatButton(
    child: Text('确认'),
    onPressed: () {
     Navigator.of(context).pop('ok');
    },
   ),
  ],
)

效果如下:

AlertDialog实现不同风格的2次确认提示框

如果你觉得这还是不够个性,那可以祭出终极大法了,直接使用Dialog,Dialog可以定制任何对话框,只需将对话框的内容给child属性:

Dialog(
  child: MyDialog(),
);

当然一般情况下,系统提供的对话框就够用了,这几个对话框组件用法基本一样,不同的地方仅仅是灵活性和使用简易程度的不要,Dialog最灵活,但使用起来比AlertDialog复杂一些,AlertDialog使用起来非常简单,但布局和基本样式都已经固定好,不如Dialog灵活。

以上就是AlertDialog实现不同风格的2次确认提示框的方法,代码示例简单明了,如果在日常工作遇到此问题。通过这篇文章,希望你能有所收获,更多详情敬请关注创新互联行业资讯频道!

另外有需要云服务器可以了解下创新互联scvps.cn,海内外云服务器15元起步,三天无理由+7*72小时售后在线,公司持有idc许可证,提供“云服务器、裸金属服务器、高防服务器、香港服务器、美国服务器、虚拟主机、免备案服务器”等云主机租用服务以及企业上云的综合解决方案,具有“安全稳定、简单易用、服务可用性高、性价比高”等特点与优势,专为企业上云打造定制,能够满足用户丰富、多元化的应用场景需求。


本文名称:AlertDialog实现不同风格的2次确认提示框-创新互联
转载来源:http://ybzwz.com/article/ceesce.html