第三十四回:AlertDialog Widget


我们在上一章回中介绍了Dismissible Widget相关的内容,本章回中将介绍 AlertDialog Widget.闲话休提,让我们一起Talk Flutter吧。

概念介绍

我们介绍的AlertDialog是指程序中弹出的确认窗口,其实我们在上一章回中删除ListView中的内容时已经使用过了,只是没有介绍它的用法而已,本章回中将详细
介绍它的使用方法。

使用方法

和其它的Widget一样,AlertDialog提供了相关的属性来控制自己,接下来我们将介绍一些常用的属性:

  • title属性:主要用来显示对话框的标题;
  • content属性:主要用来显示对话框中的内容;
  • actions属性:主要用来显示对话框中的按钮,它的类型是List,因此可以接收多个按钮,类似Column中的children属性;

AlertDialog需要配合showDialog()方法才能使用,该方法中包含两个重要的参数,一个是上下文的环境context,一个是builder,该参数主要用来构造对话框。具体的用法看代码就能明白。该方法可以看作是对话框的构造器,它还可以创建其它类型的对话框。

示例代码

_showAlertDialog() {
  showDialog(
      context: context,
      builder: (BuildContext context) {
        return AlertDialog(
          title: Text("Alert Dialog"),
          content: Text("This is a Example of  AlerDialog"),
          actions: [
            TextButton(
              onPressed: () {
                print("Yes selected");
                Navigator.of(context).pop();
              },
              child: const Text("Yes"),
            ),
            TextButton(
              onPressed: () {
                print("No selected");
                Navigator.of(context).pop();
              },
              child: const Text("No"),
            ),
          ],
        );
      });
}

在上面的代码中除了对话框相关的属性外,还有一个注意点:Navigator,我们首先获取当前的Navigator,然后进行pop操作,这样就可以关闭弹出的对话框窗口。我们把该操作放在了Button的onPress方法中,这样可以在点击Button的同时关闭窗口。除了关闭窗口外,可以在该方法中添加相关的业务处理,比如我们在上一章回中删除项目的操作就添加到了该方法中。这里的代码只是为了演示对话框,因此没有添加相关的业务代码。

代码中使用的是TextButton widget,大家也可以换成其它的Button,不过Button的风格最好与当前对话框的风格保持一致,不然它们组合在一起会有一种不协调的感觉。

此外,我们把对话框相关的代码封装到了一个方法中,把方法赋值给Button的onPress属性,当点击Button时就会弹出对话框,示例代码如下:

ElevatedButton(
  onPressed: () => _showAlertDialog(),
  child: const Text("Show Dialog"),
)

这里只列出了核心代码,完整的代码可以查看Github上ex019文件中的代码。编译并且运行上面的程序将会显示一个按钮,点击按钮就会弹出对话框,点击对话框中的yes或者no按钮后对话框就会消失。我在这里就不演示程序的运行结果了,建议大家自己动手去实践。

看官们,关于AlertDialog Widget相关的内容就介绍到这里,欢迎大家在评论区交流与讨论!

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

talk_8

真诚赞赏,手有余香

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值