Futter基础第21篇: 实现普通对话框、列表对话框、单选对话框、Toast提示
效果图:
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提示相关推荐
- Futter基础第3篇: 实现引用远程图片、本地图片、实现圆形图片,实现圆角图片【Image.network、Image.asset、BorderRadius.circular(150)】
文章目录 一丶 效果图 二丶 代码+注释 三丶 知识点 一丶 效果图 [1]引用远程图片 [2]引用本地图片 [3]实现圆形图片(方法一).圆角图片(受弧度影响) [4]实现圆形图片(方法二) 二丶 ...
- android 单选框 icon,Android中的普通对话框、单选对话框、多选对话框、带Icon的对话框、以及自定义Adapter和自定义View对话框详解...
标签: 对话框就是一个AlertDialog,但是一个简单的AlertDialog,我们却可以将它玩出许多花样来,下面我们就来一起总结一下AlertDialog的用法.看看各位童鞋在平时的工作中否都用 ...
- 详解AI Lab 21篇CVPR 2018论文(附论文)
来源:量子位 本文共8300字,建议阅读10分钟. 本文从立题背景.作者思路及研究特点为你详解计算机视觉顶会论文. 一年一度的计算机视觉顶会CVPR即将召开,入选论文也陆续揭晓. 今天分享入选论文解析 ...
- CVPR 2018 | 腾讯AI Lab入选21篇论文详解
来源:腾讯AI实验室 近十年来在国际计算机视觉领域最具影响力.研究内容最全面的顶级学术会议CVPR,近日揭晓2018年收录论文名单,腾讯AI Lab共有21篇论文入选,位居国内企业前列,我们将在下文进 ...
- AAAI 2021 京东科技集团21篇论文
点上方蓝字计算机视觉联盟获取更多干货 在右上方 ··· 设为星标 ★,与你不见不散 仅作学术分享,不代表本公众号立场,侵权联系删除 转载于:AI科技评论 AI博士笔记系列推荐 周志华<机器学习& ...
- 高速计算机的应用领域概括,[其它课程]计算机基础教案第一篇第一、二章.doc
[其它课程]计算机基础教案第一篇第一.二章 盐城技师学校教案首页 授课日期班 级课题: 第一章 计算机基础知识 §1.1计算机概述 教学目的.要求:1.熟练掌握计算机的概念及特征: 2.掌握计算机的发 ...
- JavaScript 基础知识 - 入门篇(二)
11. 函数 11.1 函数的基础知识 为什么会有函数? 在写代码的时候,有一些常用的代码需要书写很多次,如果直接复制粘贴的话,会造成大量的代码冗余: 函数可以封装一段重复的javascript代码, ...
- Python基础语法入门篇(一)
Python基础语法入门篇(二) 1. 注释 在我们工作编码的过程中,如果一段代码的逻辑比较复杂,不是特别容易理解,可以适当的添加注释,以辅助自己 或者其他编码人员解读代码. 注释是给程序员看的,为了 ...
- vue2+vue3小白零基础教程—vue2篇,全网2021最详细教程
vue教程 提示:Vue3系列请参考Vue2+Vue3小白零基础教程-vue3篇文章,本文为vue2篇. 1. Vue核心 1.1 Vue简介 1.1.1 Vue是什么 一套用于构建用户界面的渐进式J ...
- 零基础学C++——黑马程序员课程笔记(C++基础语法入门篇)
封面来自互联网侵删 视频地址:点击访问 (我这里开发工具选用VSstudio) 此笔记有三个系列: C++基础语法入门篇 C++核心编程篇 点击查看 C++提高编程篇 文章目录 C++初识 变量 常量 ...
最新文章
- Yolov5 face训练手册
- C语言百度翻译API的使用,c语言怎么翻译? 程序怎么运行?
- boost::coroutine模块实现不对称echo的测试程序
- Linux中的延时函数
- 顺着 IT 的潮流,C语言再次迎来了春天!学好了C语言能做什么?
- 从数据仓库到大数据,数据平台这25年是怎样进化的?
- Docker学习总结(8)——利用Docker开启持续交付之路
- 从零开始的全栈工程师——html篇1.4
- ReactNative之基本组件
- D3实现的ChinaMap
- 如何在Windows 10上修复缩略图问题
- 中级php工程师笔试,PHP工程师笔试题目及行测题型示例
- css3(属性选择器,结构伪类选择器,伪元素选择器 ,css3盒子模型,滤镜filter, cale, 过渡transition))
- 计算机领域新技术的工作原理,七年级信息技术上册 第4课《计算机系统及其工作原理》教学案 新人教版...
- 25个带有酷炫动画的创意404错误页面,快给你的网站换上吧(持续更新)
- 效率神器工具,看这篇就够了!
- Leetcode Day10 最长公共子序列+字符串交织
- 数据库查询语句遇到:Unknown column ‘XXXX‘ in ‘where clause‘解决方法
- Unity使用键盘wasd控制绑定角色和第一人称摄像机随鼠标移动
- SystemviewV3.12移到目标板
热门文章
- D3(v5) in TypeScript 坐标轴之 饼状图生成
- 用WebView加载本地图片的方法
- (原创)c#学习笔记03--变量和表达式03--变量01--简单类型
- 071120 sunny
- CSDN 编辑器使用指南
- 你见过最差的算法工程师能差到什么程度?
- 【ESIM】论文阅读笔记:文本蕴含之ESIM
- bug-AttributeError: ‘NoneType‘ object has no attribute ‘append‘
- Spark常用API(五)
- LeetCode刷题——283. 移动零