博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
3、Flutter Widget(IOS Style) - CupertinoAlertDialog;
阅读量:6549 次
发布时间:2019-06-24

本文共 3041 字,大约阅读时间需要 10 分钟。

  要想创建一个带有确定按钮和取消按钮等的提示弹窗。可以使用CupertinoAlertDialog;

class CupertinoAlertDialogApp extends StatelessWidget{  @override  Widget build(BuildContext context)  => CupertinoApp(    home: _buildCupertinoHomePage(),  );  Widget _buildCupertinoHomePage() => CupertinoTabScaffold(      tabBar: CupertinoTabBar(items: [        BottomNavigationBarItem(icon: Icon(CupertinoIcons.mail_solid),title: Text("Mail")),        BottomNavigationBarItem(icon: Icon(CupertinoIcons.eye_solid),title: Text("Look")),        BottomNavigationBarItem(icon: Icon(CupertinoIcons.collections_solid),title: Text("Collections")),        BottomNavigationBarItem(icon: Icon(CupertinoIcons.person_solid),title: Text("Me")),      ]),      tabBuilder: (cxt,position){        return _buildPage(cxt,position);      },  );  Widget _buildPage(BuildContext cxt,int position)=>CupertinoPageScaffold(      child:Center(child: CupertinoButton(child: Text("Show"), onPressed: (){        _showCupertinoAlertDialog(cxt);      }),),    navigationBar: CupertinoNavigationBar(      middle: Text('The page $position'),    ),  );  void _showCupertinoAlertDialog(BuildContext cxt){    showCupertinoDialog
(context: cxt, builder: (cxt){ return CupertinoAlertDialog(title: Text("Alert"),content: Text('some mesage'),actions:
[ CupertinoDialogAction(child: Text("Sure"),onPressed: (){ Navigator.pop(cxt,1); },), CupertinoDialogAction(child: Text("Cancel"),onPressed: (){ Navigator.pop(cxt,2); },) ],); }); }}复制代码

showCupertinoDialog方法;

Future
showCupertinoDialog
({ @required BuildContext context, @required WidgetBuilder builder,})复制代码

  在应用程序的当前内容上方显示iOS风格的对话框,具有iOS风格的出入动画,模态障碍颜色和模态屏障行为(点击屏障时不允许该对话框)。   这个函数需要一个builder,它通常构建一个CupertinoDialogCupertinoAlertDialog小部件。对话框下方的内容使用ModalBarrier调暗。   builder返回的窗口小部件不与最初调用showCupertinoDialog的位置共享上下文。如果对话框需要动态更新,请使用[StatefulBuilder]或自定义[StatefulWidget]。

  context参数用于查找对话框的[Navigator]。它仅在调用方法时使用。在关闭对话框之前,可以从树中安全地删除其相应的小部件。

  返回[Future],解析为关闭对话框时传递给[Navigator.pop]的值(如果有)。

  此方法创建的对话框路由将推送到根导航器。如果应用程序有多个[Navigator]对象,则可能需要调用Navigator.of(context,rootNavigator:true).pop(result)来关闭对话框,而不仅仅是Navigator.pop(context,result)

CupertinoAlertDialog

  创建IOS风格的提示弹窗。如下为其构造函数:

const CupertinoAlertDialog({    Key key,    this.title,    this.content,    this.actions = const 
[], this.scrollController, this.actionScrollController, }) 复制代码

  显示在对话框底部的(可选)一组按钮。通常,这是CupertinoDialogAction小部件的列表。

CupertinoDialogAction

为iOS样式的对话框创建操作,如下为其构造函数:

const CupertinoDialogAction({    this.onPressed,    this.isDefaultAction = false,    this.isDestructiveAction = false,    this.textStyle,    @required this.child,  }) 复制代码

  onPressed为点击回掉。isDefaultAction是否为默认,默认按钮加粗。textStyle可以设置child widget Text的样式。child一般为TextWidget。

CupertinoPopupSurface

  如果想自定义弹窗ui,可以使用CupertinoPopupSurface;

const CupertinoPopupSurface({    Key key,    this.isSurfacePainted = true,    this.child,  })复制代码

isSurfacePainted是否在这个表面的模糊背景上绘制半透明的白色。child为该弹窗的小部件树。

转载地址:http://urgdo.baihongyu.com/

你可能感兴趣的文章
黑马程序员-张老师基础加强3-内省
查看>>
TCP/IP模型简介和/etc/hosts文件说明
查看>>
UIButton常用属性
查看>>
主键自增归0
查看>>
杨辉三角
查看>>
mysql之 [ERROR] InnoDB: Unable to lock ./ibdata1, error: 11
查看>>
如何批量修改文件后缀的方法
查看>>
Effective STL 笔记
查看>>
[LeetCode] 1. Two Sum
查看>>
POJ2538 ZOJ1884 UVA10082 WERTYU【输入输出】
查看>>
HDU5620 KK's Steel(C++语言版)
查看>>
旋转卡壳
查看>>
2016/10/09
查看>>
自定义HorizontalScrollView的scrollBar
查看>>
c++学习笔记和思考
查看>>
27.Docker集群部署
查看>>
DNS保存
查看>>
IOS 多线程02-pthread 、 NSThread 、GCD 、NSOperationQueue、NSRunLoop
查看>>
第一周冲刺第五天博客
查看>>
[LeetCode]Longest Increasing Path in a Matrix
查看>>