AlertDialog写提示框
import 'package:flutter/material.dart';
void main() {
runApp(MyApp());
}
class MyApp extends StatelessWidget {
Widget build(BuildContext context) {
return MaterialApp(
home: Scaffold(
appBar: AppBar(
title: Text('AlertDialog Example'),
),
body: Center(
child: MyAlertDialogButton(),
),
),
);
}
}
class MyAlertDialogButton extends StatelessWidget {
Widget build(BuildContext context) {
return ElevatedButton(
onPressed: () {
showDialog(
context: context,
builder: (BuildContext context) {
return AlertDialog(
title: Text('错误'),
content: Text('这是一个错误提示!'),
actions: <Widget>[
TextButton(
child: Text('关闭'),
onPressed: () {
Navigator.of(context).pop();
},
),
],
);
},
);
},
child: Text('显示错误'),
);
}
}
在这个例子中,MyAlertDialogButton
是一个包含ElevatedButton
的Widget。当按钮被点击时,它会调用showDialog
函数来显示一个AlertDialog
。AlertDialog
的title
属性用于显示标题,content
属性用于显示错误消息,而actions
属性则包含了一个TextButton
,用户可以通过点击这个按钮来关闭对话框。
AlertDialog 延迟自动关闭
import 'package:flutter/material.dart';
void main() {
runApp(MyApp());
}
class MyApp extends StatelessWidget {
Widget build(BuildContext context) {
return MaterialApp(
home: Scaffold(
appBar: AppBar(
title: Text('AlertDialog Example'),
),
body: Center(
child: MyAutoCloseAlertDialogButton(),
),
),
);
}
}
class MyAutoCloseAlertDialogButton extends StatelessWidget {
Widget build(BuildContext context) {
return ElevatedButton(
onPressed: () {
showDialog(
context: context,
builder: (BuildContext context) {
final AlertDialog alertDialog = AlertDialog(
title: Text('错误'),
content: Text('这是一个错误提示!'),
);
// 使用Future.delayed来在1秒后自动关闭对话框
Future.delayed(Duration(seconds: 1), () {
Navigator.of(context).pop();
});
return alertDialog;
},
);
},
child: Text('显示错误'),
);
}
}
在这个例子中,showDialog
函数显示了一个AlertDialog
。在对话框被创建后,Future.delayed
函数被用来延迟1秒执行关闭对话框的操作。通过调用Navigator.of(context).pop()
,对话框会被自动关闭。