Dialog提示框 - flutter-爱代码爱编程
import 'package:flutter/cupertino.dart';
import 'package:flutter/material.dart';
import 'package:bot_toast/bot_toast.dart';
import '../../components/MyDiglog.dart';
class Time extends StatefulWidget {
@override
_TimeState createState() => _TimeState();
}
class _TimeState extends State<Time> {
_alterDialog() async{
var result = await showDialog(
context: context,
builder: (context){
return AlertDialog(
title: Text("提示选择确定还是取消"),
content: Text("确认要删除嘛?"),
actions: [
FlatButton(
onPressed: (){
print("确定");
Navigator.pop(context, "OK啦");
},
child: Text("确定")
),
FlatButton(
onPressed: (){
print("取消");
Navigator.pop(context, "cancel");
},
child: Text("取消")
)
],
);
}
);
print(result);
}
_simpleDialog(){
showDialog(
context: context,
builder: (BuildContext context){
return SimpleDialog(
title: Text("多个选项提示框, 你喜欢吃什么水果, A 橘子, B橙子, C西瓜"),
children: [
SimpleDialogOption(
child: Text("A 橘子"),
onPressed: (){
print("橘子");
Navigator.pop(context);
},
),
SimpleDialogOption(
child: Text("B 橙子"),
onPressed: (){
print("橙子");
Navigator.pop(context);
},
),
SimpleDialogOption(
child: Text("C 西瓜"),
onPressed: (){
print("西瓜");
Navigator.pop(context);
},
)
],
);
},
);
}
_modelBottomSheet(){
//底部弹出多个选项框
showModalBottomSheet(
context: context,
builder: (BuildContext context){
return Container(
height: 250,
child: Column(
children: [
ListTile(
title: Text("云贵高原"),
subtitle: Text("AAAAA级风景区"),
onTap: (){
print("云贵高原");
Navigator.pop(context);
},
),
ListTile(
title: Text("海南三亚"),
subtitle: Text("AAAAA级风景区"),
onTap: (){
print("海南三亚");
Navigator.pop(context);
},
),
ListTile(
title: Text("苏州园林"),
subtitle: Text("AAAAA级风景区"),
onTap: (){
print("苏州园林");
Navigator.pop(context);
},
),
],
),
);
}
);
}
//提示框, 过几秒消失
_toast(){
BotToast.showText(text:"xxxx"); //弹出一个文本框;
// BotToast.showCustomText(
//
// );
// BotToast.showSimpleNotification(title: "init"); //弹出简单通知Toast
// BotToast.showLoading(); //弹出一个加载动画
}
@override
Widget build(BuildContext context) {
return Container(
child:Column(
children: [
RaisedButton(
child: Text("1"),
onPressed: _alterDialog,
),
RaisedButton(
child: Text("1"),
onPressed: _simpleDialog,
),
RaisedButton(
child: Text("1"),
onPressed: _modelBottomSheet,
),
RaisedButton(
child: Text("1"),
onPressed: _toast,
),
RaisedButton(
child: Text("1"),
onPressed: (){
showDialog(
context: context,
builder: (context){
//自定义提示框
return MyDiaLog();
}
);
},
),
],
),
);
}
}
import 'package:flutter/cupertino.dart';
import 'package:flutter/material.dart';
import 'dart:async';
class MyDiaLog extends Dialog{
_showTimer(context){
var timer = Timer.periodic(
Duration(milliseconds: 3000),
(timer) {
Navigator.pop(context);
timer.cancel();
}
);
}
@override
Widget build(BuildContext context) {
// TODO: implement build
_showTimer(context);
return Material(
type: MaterialType.transparency,
color: Colors.orange,
child: Column(
mainAxisAlignment: MainAxisAlignment.center,
children: [
Container(
decoration: BoxDecoration(
color: Colors.orange,
borderRadius: BorderRadius.circular(200),
),
height: 100,
width: 100,
// color: Colors.pink,
child: Text("Hellow Word"),
)
],
)
);
}
}
import 'dart:io';
import 'package:flutter/cupertino.dart';
import 'package:flutter/material.dart';
import 'package:flutter_app/routes/Route.dart';
import 'package:flutter_localizations/flutter_localizations.dart';
import 'package:bot_toast/bot_toast.dart';
void main() => runApp(MyApp());
class MyApp extends StatelessWidget {
@override
Widget build(BuildContext context) {
return MaterialApp(
builder: BotToastInit(), //1.调用BotToastInit
navigatorObservers: [BotToastNavigatorObserver()], //2.注册路由观察者
localizationsDelegates: [
GlobalMaterialLocalizations.delegate,
GlobalWidgetsLocalizations.delegate
],
supportedLocales: [
const Locale('zh', 'CH'),
const Locale('en', 'US')
],
debugShowCheckedModeBanner: false, //去掉右上角debug图标
initialRoute: "/", //默认路由页面,不配置这项默认为 "/"
// home:HomeContent(), //这是配置默认页面, 但是和routs里的 "/", 配置冲突, routes存在 "/" 即为默认家路由.
theme: ThemeData(primarySwatch: Colors.deepOrange),
// routes: routes,
//当属性 routes: 里面不存在相应路由时才会调用 onGenerateRoute, 所以注释掉routes:, onGenerateRoute才会生效;
onGenerateRoute: onGenerateRoute,
);
}
}
版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。 本文链接: https://blog.csdn.net/LiErDan/article/details/111109732