Flutter中各种对话框的使用
Flutter提供了多种对话框组件供开发者使用,以下代码中演示了常见对话框的实现,供大家参考,欢迎大家复制粘贴和吐槽。
import 'package:flutter/material.dart';
// pubspec.yaml 中配置 fluttertoast: ^8.0.7
import 'package:fluttertoast/fluttertoast.dart'; void main() {runApp(MyApp());
}// 抽离成一个单独的组件
class MyApp extends StatelessWidget {@overrideWidget build(BuildContext context) {return MaterialApp(home: Scaffold(// 导航条appBar: AppBar(title: Text('Flutter各种对话框')),// 主体body: DialogPage(),),theme: ThemeData(primarySwatch: Colors.yellow));}
}class DialogPage extends StatefulWidget {DialogPage({Key key}) : super(key: key);_DialogPageState createState() => _DialogPageState();}class _DialogPageState extends State<DialogPage> {// 提示对话框_showToastDialog() {Fluttertoast.showToast(msg: "提示信息",toastLength: Toast.LENGTH_SHORT,gravity: ToastGravity.CENTER,timeInSecForIosWeb: 1,backgroundColor: Colors.black,textColor: Colors.white,fontSize: 16.0);}// 确认对话框_showAlertDialog() async {var result = await showDialog(// 表示点击灰色背景的时候是否消失弹出框barrierDismissible: false, context: context,builder: (context) {return AlertDialog(title: Text("提示信息"),content: Text("您确定要删除吗?"),actions: <Widget>[TextButton(child: Text("取消"),onPressed: () {print("取消");Navigator.pop(context, 'Cancle');},),TextButton(child: Text("确定"),onPressed: () {print("确定");Navigator.pop(context, "Ok");})]);});print(result);}// 选择对话框_showSelectDialog() async {var result = await showDialog(// 表示点击灰色背景的时候是否消失弹出框barrierDismissible: false, 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);}// 底部弹出选择框_showActionSheetDialog() async {var result = await showModalBottomSheet(context: context,builder: (context) {return Container(height: 220,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);}@overrideWidget build(BuildContext context) {return Center(child: Column(mainAxisAlignment: MainAxisAlignment.center,children: <Widget>[ElevatedButton(child: Text('提示对话框'),onPressed: _showToastDialog,),SizedBox(height: 20),ElevatedButton(child: Text('确认对话框'),onPressed: _showAlertDialog,),SizedBox(height: 20),ElevatedButton(child: Text('选择对话框'),onPressed: _showSelectDialog,),SizedBox(height: 20),ElevatedButton(child: Text('底部弹出选择框'),onPressed: _showActionSheetDialog,)]));}
}
页面渲染效果如下,对话框的效果大家可自行点击查看。
Flutter中各种对话框的使用相关推荐
- Flutter 中获取地理位置[Flutter专题61]
大家好,我是坚果,公众号"坚果前端" Flutter 中获取地理位置 如今,发现用户位置是移动应用程序非常常见且功能强大的用例.如果您曾经尝试过在 Android 中实现位置,您就 ...
- Flutter中管理路由栈的方法和应用
版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明. 本文链接:https://blog.csdn.net/weixin_34396103/arti ...
- flutter中的路由跳转
在前面的基本路由和命名路由中,都演示了如何进行路由跳转,并且在路由跳转以后,可以借用系统自带的按钮就行返回上一级,当然了,也可以自定义按钮返回上一级. 返回上一级 在前面的例子中,当从Home.dar ...
- flutter中的生命周期
前言 和其他的视图框架比如android的Activity一样,flutter中的视图Widget也存在生命周期,生命周期的回调函数提现在了State上面.理解flutter的生命周期,对我们写出一个 ...
- 一招教会你处理Flutter中的数据
目录传送门:<Flutter快速上手指南>先导篇 在一个 App 中,数据类是必不可少. 我们需要从接口请求数据(通常为 JSON 格式),然后解析成对象,再使用它. 看看在 Flutte ...
- 详解Linux交互式shell脚本中创建对话框实例教程
详解Linux交互式shell脚本中创建对话框实例教程 本教程我们通过实现来讲讲Linux交互式shell脚本中创建各种各样对话框,对话框在Linux中可以友好的提示操作者,感兴趣的朋友可以参考学习一 ...
- flutter中的生命周期函数
前言:生命周期是一个组件加载到卸载的整个周期,熟悉生命周期可以让我们在合适的时机做该做的事情, flutter中的State生命周期和android以及React Native的生命周期类似. 先看一 ...
- 在Flutter中嵌入Native组件的正确姿势
引言 在漫长的从Native向Flutter过渡的混合工程时期,要想平滑地过渡,在Flutter中使用Native中较为完善的控件会是一个很好的选择.本文希望向大家介绍AndroidView的使用方式 ...
- GTK+重拾--08 GTK+中的对话框
版权声明:您好,转载请留下本人博客的地址,谢谢 https://blog.csdn.net/hongbochen1223/article/details/50351564 (一):写在前面 在这一个小 ...
最新文章
- pybind11介绍
- struts的DevMode模式
- python if语句多个条件-python if条件判断语句
- MVC小型商务网站实例(2)--项目架构
- python安装linux软件_Linux之安装常用软件
- java的求和函数_Java Stream流之求和的实现
- 属于PHP语言结构的是,PHP语言结构
- leetcode93. 复原 IP 地址
- Web2.0网站性能调优实践(引用王宗义)
- C语言整型在计算机的储存
- 网络工程师Day4--实验3-1 配置ACL过滤企业数据
- Java 设计模式 之 观察者模式(Observer)
- 机器视觉知识汇总(持续更新)
- kindle3使用技巧
- 数据库--聚集函数及其应用
- RIGHT-BICEP测试第二次程序
- 中国人寿保费项目数据集
- 苹果,Inter,AMD
- Python全栈[第二篇]:计算机基础知识-进制
- 安卓设置keychain_简单实现KeyChain实例
热门文章
- java readfile函数_从fs.readFile获取数据
- Docker安装ElasticSerach、ElasticSerachhead、IK分词器及Kibanna步骤(亲测能用)
- DZ论坛克米模板3.5版全解密+完整插件/教程
- 社会最底层的人,如何突破人生圈层,改变命运?
- Web应用程序停止时无法注销它。 为防止内存泄漏,JDBC驱动程序已被强制取消注册。
- 触发器相关概念与应用
- android 国际化方案 简书,国际化
- 【C++实验一】 实现CMatrix类
- 操作系统之避免死锁的方法
- Date相关日期格式转换