效果图:

Dialog.dart

这里我把所有的代码都写在了一个类里,不过要想实现Toast的功能,我们必须要引入第三方库,可参考:https://pub.dev/packages/fluttertoast

配置:pubspec.yaml

引入包名:import ‘package:fluttertoast/fluttertoast.dart’;

Dialog.dart

import 'package:flutter/material.dart';import 'package:fluttertoast/fluttertoast.dart';class DialogPage extends StatefulWidget {@override_DialogPageState createState() => _DialogPageState();
}class _DialogPageState extends State<DialogPage> {_alertDialog() async{var result = await showDialog(       //通过异步在外面获取值context:context,builder: (context){return AlertDialog(      //系统自带: 普通对话框title: Text('提示信息!'),content: Text('您确定要删除吗?'),actions: <Widget>[     //监听器FlatButton(              //确定监听child: Text('取消'),onPressed: (){print('取消');Navigator.pop(context,'Cancle');},),FlatButton(              //取消监听child: Text('确定'),onPressed: (){print('确定');Navigator.pop(context,'OK');},)],);});print(result);   //在外部获取数据并打印}_simpleDialog() async{var result = await showDialog(context: context,builder: (context){return SimpleDialog(title: Text('选择内容'),children: <Widget>[SimpleDialogOption(child: Text('Option A'),onPressed: (){print('Option A');Navigator.pop(context,'A');},),Divider(),SimpleDialogOption(child: Text('Option B'),onPressed: (){print('Option B');Navigator.pop(context,'B');},),Divider(),SimpleDialogOption(child: Text('Option C'),onPressed: (){print('Option C');Navigator.pop(context,'C');},),Divider(),],);});print(result);}_modelBottomSheet() async{var result = await showModalBottomSheet(context: context,builder: (context){return Container(height: 250,  //配置底部弹出框高度child: Column(children: <Widget>[ListTile(title: Text('分享 A'),onTap: (){Navigator.pop(context,'分享A');},),Divider(),ListTile(title: Text('分享 B'),onTap: (){Navigator.pop(context,'分享B');},),Divider(),ListTile(title: Text('分享 C'),onTap: (){Navigator.pop(context,'分享C');},),],),);});print(result);}_toast(){Fluttertoast.showToast(msg: "提示信息",toastLength: Toast.LENGTH_SHORT,    //跟Android一样,短时间提示gravity: ToastGravity.CENTER,       //居中timeInSecForIos: 1,               //Android无效果,ios有效果文档上已经说明:timeInSecForIos  int (only for ios)backgroundColor: Colors.red,      //背景颜色textColor: Colors.white,          //字体颜色fontSize: 16.0                    //字体大小);}@overrideWidget build(BuildContext context) {return Scaffold(appBar: AppBar(title: Text('DialogDemo'),),body: Center(child: Column(mainAxisAlignment: MainAxisAlignment.center,children: <Widget>[RaisedButton(child: Text('alert弹出框-AlerDialog'),onPressed: _alertDialog,),SizedBox(height: 20,),RaisedButton(child: Text('select弹出框-SimpleDialog'),onPressed: _simpleDialog,),SizedBox(height: 20,),RaisedButton(child: Text('ActionSheet底部弹出框-showModalBottomSheet'),onPressed: _modelBottomSheet,),SizedBox(height: 20,),RaisedButton(child: Text('toast-fluttertoast第三方库'),onPressed: _toast,)],),),);}
}

Futter基础第21篇: 实现普通对话框、列表对话框、单选对话框、Toast提示相关推荐

  1. Futter基础第3篇: 实现引用远程图片、本地图片、实现圆形图片,实现圆角图片【Image.network、Image.asset、BorderRadius.circular(150)】

    文章目录 一丶 效果图 二丶 代码+注释 三丶 知识点 一丶 效果图 [1]引用远程图片 [2]引用本地图片 [3]实现圆形图片(方法一).圆角图片(受弧度影响) [4]实现圆形图片(方法二) 二丶 ...

  2. android 单选框 icon,Android中的普通对话框、单选对话框、多选对话框、带Icon的对话框、以及自定义Adapter和自定义View对话框详解...

    标签: 对话框就是一个AlertDialog,但是一个简单的AlertDialog,我们却可以将它玩出许多花样来,下面我们就来一起总结一下AlertDialog的用法.看看各位童鞋在平时的工作中否都用 ...

  3. 详解AI Lab 21篇CVPR 2018论文(附论文)

    来源:量子位 本文共8300字,建议阅读10分钟. 本文从立题背景.作者思路及研究特点为你详解计算机视觉顶会论文. 一年一度的计算机视觉顶会CVPR即将召开,入选论文也陆续揭晓. 今天分享入选论文解析 ...

  4. CVPR 2018 | 腾讯AI Lab入选21篇论文详解

    来源:腾讯AI实验室 近十年来在国际计算机视觉领域最具影响力.研究内容最全面的顶级学术会议CVPR,近日揭晓2018年收录论文名单,腾讯AI Lab共有21篇论文入选,位居国内企业前列,我们将在下文进 ...

  5. AAAI 2021 京东科技集团21篇论文

    点上方蓝字计算机视觉联盟获取更多干货 在右上方 ··· 设为星标 ★,与你不见不散 仅作学术分享,不代表本公众号立场,侵权联系删除 转载于:AI科技评论 AI博士笔记系列推荐 周志华<机器学习& ...

  6. 高速计算机的应用领域概括,[其它课程]计算机基础教案第一篇第一、二章.doc

    [其它课程]计算机基础教案第一篇第一.二章 盐城技师学校教案首页 授课日期班 级课题: 第一章 计算机基础知识 §1.1计算机概述 教学目的.要求:1.熟练掌握计算机的概念及特征: 2.掌握计算机的发 ...

  7. JavaScript 基础知识 - 入门篇(二)

    11. 函数 11.1 函数的基础知识 为什么会有函数? 在写代码的时候,有一些常用的代码需要书写很多次,如果直接复制粘贴的话,会造成大量的代码冗余: 函数可以封装一段重复的javascript代码, ...

  8. Python基础语法入门篇(一)

    Python基础语法入门篇(二) 1. 注释 在我们工作编码的过程中,如果一段代码的逻辑比较复杂,不是特别容易理解,可以适当的添加注释,以辅助自己 或者其他编码人员解读代码. 注释是给程序员看的,为了 ...

  9. vue2+vue3小白零基础教程—vue2篇,全网2021最详细教程

    vue教程 提示:Vue3系列请参考Vue2+Vue3小白零基础教程-vue3篇文章,本文为vue2篇. 1. Vue核心 1.1 Vue简介 1.1.1 Vue是什么 一套用于构建用户界面的渐进式J ...

  10. 零基础学C++——黑马程序员课程笔记(C++基础语法入门篇)

    封面来自互联网侵删 视频地址:点击访问 (我这里开发工具选用VSstudio) 此笔记有三个系列: C++基础语法入门篇 C++核心编程篇 点击查看 C++提高编程篇 文章目录 C++初识 变量 常量 ...

最新文章

  1. Yolov5 face训练手册
  2. C语言百度翻译API的使用,c语言怎么翻译? 程序怎么运行?
  3. boost::coroutine模块实现不对称echo的测试程序
  4. Linux中的延时函数
  5. 顺着 IT 的潮流,C语言再次迎来了春天!学好了C语言能做什么?
  6. 从数据仓库到大数据,数据平台这25年是怎样进化的?
  7. Docker学习总结(8)——利用Docker开启持续交付之路
  8. 从零开始的全栈工程师——html篇1.4
  9. ReactNative之基本组件
  10. D3实现的ChinaMap
  11. 如何在Windows 10上修复缩略图问题
  12. 中级php工程师笔试,PHP工程师笔试题目及行测题型示例
  13. css3(属性选择器,结构伪类选择器,伪元素选择器 ,css3盒子模型,滤镜filter, cale, 过渡transition))
  14. 计算机领域新技术的工作原理,七年级信息技术上册 第4课《计算机系统及其工作原理》教学案 新人教版...
  15. 25个带有酷炫动画的创意404错误页面,快给你的网站换上吧(持续更新)
  16. 效率神器工具,看这篇就够了!
  17. Leetcode Day10 最长公共子序列+字符串交织
  18. 数据库查询语句遇到:Unknown column ‘XXXX‘ in ‘where clause‘解决方法
  19. Unity使用键盘wasd控制绑定角色和第一人称摄像机随鼠标移动
  20. SystemviewV3.12移到目标板

热门文章

  1. D3(v5) in TypeScript 坐标轴之 饼状图生成
  2. 用WebView加载本地图片的方法
  3. (原创)c#学习笔记03--变量和表达式03--变量01--简单类型
  4. 071120 sunny
  5. CSDN 编辑器使用指南
  6. 你见过最差的算法工程师能差到什么程度?
  7. 【ESIM】论文阅读笔记:文本蕴含之ESIM
  8. bug-AttributeError: ‘NoneType‘ object has no attribute ‘append‘
  9. Spark常用API(五)
  10. LeetCode刷题——283. 移动零