import 'package:flutter/material.dart';
import 'dart:ui';
import 'dart:async';
enum Option{A,B,C}
void main() => runApp(MyApp()); class MyApp extends StatelessWidget {
@override
Widget build(BuildContext context) {
return MaterialApp(
debugShowCheckedModeBanner: false,
home: HomePage(),
);
}
} class HomePage extends StatefulWidget {
@override
_HomePageState createState() => _HomePageState();
} class _HomePageState extends State<HomePage> {
Future dialogBox()async{
final option=await showDialog(
context: context,
builder: (BuildContext context){
return SimpleDialog(
title: Text('this is a dialog'),
children: <Widget>[
SimpleDialogOption(
child: Text('option A'),
onPressed: (){
Navigator.pop(context,Option.A);
},
),
SimpleDialogOption(
child: Text('option B'),
onPressed: (){
Navigator.pop(context,Option.B);
},
),
SimpleDialogOption(
child: Text('option C'),
onPressed: (){
Navigator.pop(context,Option.C);
},
),
],
);
}
);
switch(option){
case Option.C:
debugPrint('your choice is C');
break;
case Option.A:
debugPrint('your choice is A');
break;
case Option.B:
debugPrint('your choice is B');
break;
}
}
@override
Widget build(BuildContext context) {
return Scaffold(
body: Container(
width: window.physicalSize.width,
height: window.physicalSize.height,
child: Image.network(
'http://www.ecobentech.com/img/a.jpg',
fit: BoxFit.cover,
),
),
floatingActionButton: FloatingActionButton(
onPressed:(){dialogBox();},
child: Icon(Icons.text_fields),
),
floatingActionButtonLocation: FloatingActionButtonLocation.centerDocked,
);
}
}

SimpleDialogBox的更多相关文章

  1. jquery不同版本导致的checkbox设置了属性,但是没有选中效果

    由于本人好久不做B/S了,今天同学问我个问题才发现了jquery版本还是存在差异的,今天写的就是关于获取checkbox属性的方式(可能不应该叫属性了其实,后面就知道了). 看下面的代码截图吧 < ...

随机推荐

  1. htnl 定位

    相对定位 相对定位:position:relative; 相对定位:相对定位是相对于元素在文档中的初始位置——首先它出现在它所在的位置上(即不设置position时的位置,然后通过设置垂直或水平位置, ...

  2. WPF:完美自定义MeaagseBox 动画 反弹 背景模糊 扁平化

    不知道为什么,WPF的MeaageBox的风格还停留在Win 2000的风格... 很久前就想自己封装一个MessageBox出来,但是都只是简单的封装,不怎么具有通用性.这次终于搞完了. 使用方法和 ...

  3. git 代码服务器的网页版gitweb的搭建

    sudo apt-get install apache2 git-core gitwebsudo a2enmod rewrite #vi /etc/gitweb.conf $projectroot = ...

  4. ELK的sentinl告警配置详解

    背景 sentinl的监控&告警是通过watch实现的. 一.Watch Execution 执行开始的时候, watcher为watch创建watch执行上下文. 执行上下文提供脚本和模板, ...

  5. SQL 中用户定义函数的使用方法

    --用户定义函数的分类: /* 1.标量函数 2.表值函数 2.1内联表值函数  返回单个SELECT语句, 它没有相关的返回变量和函数体 2.2多语句表值函数  是视图和存储过程的结合 可嵌套 */ ...

  6. java笔记--对信号量Semaphore的理解与运用

    java Semaphore 信号量的使用: 在java中,提供了信号量Semaphore的支持. Semaphore类是一个计数信号量,必须由获取它的线程释放, 通常用于限制可以访问某些资源(物理或 ...

  7. Uvision4创建工程

    创建工程 创建好工程会出现如下的界面 创建文件( .asm 或 .c ) 选择菜单栏中的File->New- 按 Ctrl+S 保存文件并填写文件名 添加到之前创建的工程中 选择Target1- ...

  8. 如何解决远程连接mysql出现Can’t connect to MySQL server on (111 “Connection refused”)的问题

    如何解决远程连接mysql出现Can’t connect to MySQL server on (111 “Connection refused”)的问题 开放Mysql的远程连接 在服务器上登录my ...

  9. Android 5.0 版本 USB 调试模式打开方法

    Android 4.2 版本 USB 调试模式打开方法 1. 进入“设置”页面,点击“关于平板电脑”.见下图红色方框.   2. 疯狂点击“版本号”,见下图红色方框,直到出现“您现在处于开发者模式!” ...

  10. c/c++赋值函数(重载=号运算符)

    c/c++赋值函数(重载=号运算符) 首先c++里的各种运算符都是用函数实现的,比如=,就等号函数. 所以当用=给一个对象赋值的时候,实际调用的是=号所对应的=号函数. 分析下面的代码 #includ ...