AlertDialog

  //放在State<>之下
void _alertDialog() async {
var result = await showDialog(
barrierDismissible: true, //表示点击灰色背景的时候是否消失弹出框
context: context,
builder: (context) {
return AlertDialog(
title: const Text("提示信息!"),
content: const Text("您确定要删除吗?"),
actions: <Widget>[
//按钮组
TextButton(
child: const Text("取消"),
onPressed: () {
print("取消————————————————————");
Navigator.pop(context, 'Cancle'); //关闭页面并传值
},
),
TextButton(
child: const Text("确定"),
onPressed: () {
print("确定————————————————");
Navigator.pop(context, "Ok");
},
)
],
);
});
print(result);
}

SimpleDialog、SimpleDialogOption

  void _simpleDialog() async {
var result = await showDialog(
barrierDismissible: true, //表示点击灰色背景的时候是否消失弹出框
context: context,
builder: (context) {
return SimpleDialog(
title: const Text("请选择内容"),
children: <Widget>[
SimpleDialogOption(
child: const Text("Option A"),
onPressed: () {
print("Option A");
Navigator.pop(context, "A");
},
),
const Divider(),
SimpleDialogOption(
child: const Text("Option B"),
onPressed: () {
print("Option B");
Navigator.pop(context, "B");
},
),
const Divider(),
SimpleDialogOption(
child: const Text("Option C"),
onPressed: () {
print("Option C");
Navigator.pop(context, "C");
},
),
],
);
});
print(result);
}

showModalBottomSheet

  void _modelBottomSheet() async {
var result = await showModalBottomSheet(
context: context,
builder: (context) {
return SizedBox(
height: 220,
child: Column(
children: <Widget>[
ListTile(
title: const Text("分享 A"),
onTap: () {
Navigator.pop(context, "分享 A");
},
),
const Divider(),
ListTile(
title: const Text("分享 B"),
onTap: () {
Navigator.pop(context, "分享 B");
},
),
const Divider(),
ListTile(
title: const Text("分享 C"),
onTap: () {
Navigator.pop(context, "分享 C");
},
)
],
),
);
});
print(result);
}

使用

ElevatedButton(onPressed: _alertDialog, child: Text("AlertDialog")),

Flutter Toast(几秒后消失)提示信息

fluttertoast: ^8.0.9
import 'package:fluttertoast/fluttertoast.dart';
  void _toTost() async{
Fluttertoast.showToast(
msg: "提示信息",
toastLength: Toast.LENGTH_SHORT, //安卓里调时间 LENGTH_LONG 长时间 LENGTH_SHORT 短时间
gravity: ToastGravity.CENTER, //位置
timeInSecForIosWeb: 1, //提示时间 针对 ios与web
backgroundColor: Color.fromARGB(255, 4, 151, 77), //背景颜色
textColor: const Color.fromARGB(255, 187, 38, 38), //字体颜色
fontSize: 16.0); //字体大小
}

自定义弹窗

新建myDialog.dart
import 'package:flutter/material.dart';

class MyDialog extends Dialog {
String title; // 对话框标题
String content; // 对话框内容,默认为空字符串
Function()? onClosed; // 对话框关闭时的回调函数,可为空
MyDialog({
Key? key,
required this.title,
required this.onClosed,
this.content = "",
}) : super(key: key); @override
Widget build(BuildContext context) {
return Material( type: MaterialType.transparency,//背景透明
child: Center(
child: Container(
height: 300,
width: 300,
color: Colors.white, // 对话框的背景颜色
child: Column(
children: <Widget>[
Padding(
padding: const EdgeInsets.all(10),
child: Stack(
children: <Widget>[
Align(
alignment: Alignment.center,
child: Text(title), // 对话框标题文本
),
Align(
alignment: Alignment.centerRight,
child: InkWell(
onTap: onClosed, // 点击关闭图标时触发的回调函数
child: const Icon(Icons.close), // 关闭图标
),
),
],
),
),
const Divider(), // 分割线
Container(
padding: const EdgeInsets.all(10),
width: double.infinity,
child: Text(content, textAlign: TextAlign.left), // 对话框内容文本
),
],
),
),
),
);
}
}
调用Mydialog
  void _myDialog() async {
await showDialog(
barrierDismissible: true, //表示点击灰色背景的时候是否消失弹出框
context: context,
builder: (context) {
return MyDialog(
title: '标题',
onClosed: () {
print("关闭");
Navigator.of(context).pop();
},
content: "我是一个内容");
});
}

27、flutter Dialog 弹窗的更多相关文章

  1. Flutter - 自定义Dialog弹窗

    ------------恢复内容开始------------ Flutter - 自定义Dialog弹窗 应用场景:app系统版本升级弹窗,系统退出登录弹窗,首页广告弹窗,消息中心弹窗,删除文件弹窗等 ...

  2. flutter dialog

    flutter Dialog import 'dart:math'; import 'package:flutter/material.dart'; import 'test.dart'; impor ...

  3. jQuery的dialog弹窗实现

    jQuery实现dialog弹窗: html代码如下: <input type="button" onclick="performances();" va ...

  4. flutter dialog异常Another exception was thrown: No MaterialLocalizations found

    flutter dialog异常Another exception was thrown: No MaterialLocalizations found import 'package:flutter ...

  5. 封装React AntD的dialog弹窗组件

    前一段时间分享了基于vue和element所封装的弹窗组件(封装Vue Element的dialog弹窗组件),今天就来分享一个基于react和antD所封装的弹窗组件,反正所使用的技术还是那个技术, ...

  6. 一种更优雅的Flutter Dialog解决方案

    前言 系统自带的Dialog实际上就是Push了一个新页面,这样存在很多好处,但是也存在一些很难解决的问题 必须传BuildContext loading弹窗一般都封装在网络框架中,多传个contex ...

  7. dialog弹窗里生成二维码 (reading qppendChild)

    在dialog弹窗里生成二维码第一次点击时 dialogFormVisible.value=false,二维码生成时会找不到对象可以用nextTick()函数 将二维码生成代码放到nextTick() ...

  8. 这一次,解决Flutter Dialog的各种痛点!

    前言 Q:你一生中闻过最臭的东西,是什么? A:我那早已腐烂的梦. 兄弟萌!!!我又来了! 这次,我能自信的对大家说:我终于给大家带了一个,能真正帮助大家解决诸多坑比场景的pub包! 将之前的flut ...

  9. JQuery UI dialog 弹窗实例及参数说明

    按钮代码: <a id="suprise" style="margin-left: 0.5em;cursor:pointer;">点我会有惊喜< ...

  10. Android4.4 SystemUI加入Dialog弹窗

    此弹窗为开机SystemUI的显示弹窗: 首先.在SystemUI的源代码文件夹加入源代码类文件,文件夹为frameworks/base/packages/SystemUI/src/com/andro ...

随机推荐

  1. 11g GI监听测试增加其他本地端口

    11.2 GI中监听器的地址和端口信息被移到了 endpoints_listener.ora中. 使用 endpoints_listener.ora的情况下不应使用lsnrctl管理LISTENER, ...

  2. Noi-Linux 2.0 装机+使用整合

    写在前面 网上的东西比较多,也比较杂乱,不是很方便,所以我整合了一些关于 Noi-Linux2.0 虚拟机装机方法+代码编辑环境+实地编程的介绍,看完至少能用起来打代码了. NOI 官网公告(JS 开 ...

  3. Isito 入门(九):安全认证

    本教程已加入 Istio 系列:https://istio.whuanle.cn 目录 7,认证 Peer Authentication PeerAuthentication 的定义 实验 Reque ...

  4. 🔥🔥你以为你了解TCP协议?这些你可能不知道的细节才是关键!

    引言 在之前的内容中,我们已经详细讲解了TCP面试中最常见的问题,如三次握手和四次挥手等.而今天,我们将继续深入探讨TCP协议的其他方面,比如序列号和TCP Fast Open(TFO)等重要细节问题 ...

  5. JavaScript 语法:流程控制语句

    作者:WangMin 格言:努力做好自己喜欢的每一件事 JavaScript流程控制语句的三种基本结构:顺序结构,选择结构,循环结构 顺序结构 从上到下执行的代码就是顺序结构,程序默认就是由上到下顺序 ...

  6. 题解 CF980B

    前言: 关于原题目中的 "旅馆" 这一用词,个人感觉用起来十分不畅,于是下文中将会用 "障碍物" 一词来代指旅馆. 题目大意: 有一座 \(4 \times n ...

  7. 二进制安装Kubernetes(k8s)v1.28.3

    二进制安装Kubernetes(k8s)v1.28.3 https://github.com/cby-chen/Kubernetes 开源不易,帮忙点个star,谢谢了 介绍 kubernetes(k ...

  8. 2022.7.12 thecold 讲课纪要

    前言 上午刚学完平衡树,听学长说下午讲 \(LCT\) ,想了想就我这种蒟蒻平衡树还写不明白就搞 \(LCT\) ,绝对会挂,就打算下午去初中集训班摸摸鱼. 一进去就看见了 thecold 学长,真的 ...

  9. Vue打包发布

    打包发布 目标:明确打包的作用 说明:vue脚手架只是开发过程中,协助开发的工具,当真正开发完了,脚手架不参与上线 打包的作用: 将多个文件压缩合并成一个文件 语法降级 less sass ts 语法 ...

  10. [NewStarCTF WEEK5] pwn-planet 详解

    这道题目更多是考pwner的逆向功底(虽然程序逻辑也不是非常复杂=_=) 老规矩,先checksec查看程序 保护全开 看一下main函数 __int64 __fastcall main(int a1 ...