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. RabbitMQ——RabbitMQ面试题

    文章目录 为什么使用MQ?MQ的优点 消息队列有什么优缺点?RabbitMQ有什么优缺点? 你们公司生产环境用的是什么消息中间件? Kafka.ActiveMQ.RabbitMQ.RocketMQ 有 ...

  2. Django框架——中间件、Auth模块、ContentType

    文章目录 一 什么是中间件 二 中间件有什么用 三 自定义中间件 process_request和process_response process_view process_exception pro ...

  3. Linux 中如何修改终端提示符颜色?

    哈喽大家好,我是咸鱼 我们知道默认情况下,Linux 终端提示符都是简单的黑白色 这种黑白提示一方面看久了容易视觉疲劳,另一方面由于没有高亮显示,看着很不方便,视觉体验极差 所以我们需要修改我们的终端 ...

  4. git报错fatal: unable to access 'https://github.com/hxx.git/': LibreSSL SSL_connect: SSL_ERROR_SYSCALL in connection to github.com:443

    今天拉git代码报错 弄好了,下面是解决方法: 在网上查了很多办法都没有解决,有的方法是https连接模式改成ssh模式,或者是修改代理,比如: git config --global http.pr ...

  5. Python 数学函数和 math 模块指南

    Python 提供了一组内置的数学函数,包括一个广泛的数学模块,可以让您对数字执行数学任务. 内置数学函数.min() 和 max() 函数可用于在可迭代对象中查找最低或最高值: 示例:查找可迭代对象 ...

  6. 【Flutter】一文读懂混入类Mixin

    [Flutter]一文读懂混入类Mixin 基本介绍 Mixin是一种有利于代码复用,又避免了多继承的解决方案. Mixin 是面向对象程序设计语言中的类,提供了方法的实现,其他类可以访问 Mixin ...

  7. STL deque容器

    deque - 双向队列 1.队列的基本知识 队列的基本特性就是先进先出(FIFO),也就是第一个进去的元素第一个出来.即队列就是一个只允许在一端进行插入,在另一端进行删除操作的线性表.Queue接口 ...

  8. 机器人的运动范围(dfs)(leetcode 4.8 每日打卡)

    地上有一个m行n列的方格,从坐标 [0,0] 到坐标 [m-1,n-1] .一个机器人从坐标 [0, 0] 的格子开始移动,它每次可以向左.右.上.下移动一格(不能移动到方格外),也不能进入行坐标和列 ...

  9. 【scikit-learn基础】--『数据加载』之真实数据集

    上一篇介绍了scikit-learn中的几个玩具数据集,本篇介绍scikit-learn提供的一些真实的数据集.玩具数据集:scikit-learn 基础(01)--『数据加载』之玩具数据集 1. 获 ...

  10. Guava Preconditions类的各种用法

    公众号「架构成长指南」,专注于生产实践.云原生.分布式系统.大数据技术分享. Guava Preconditions类 提供静态方法列表,用于检查是否使用有效参数值调用方法或构造函数.如果前提条件失败 ...