Flutter弹窗的简单使用
import 'package:flutter/material.dart';
void main() => runApp(MyApp());
class MyApp extends StatelessWidget {
@override
Widget build(BuildContext context) {
return MaterialApp(
home: HomePage(),
);
}
}
class HomePage extends StatefulWidget {
@override
_HomePageState createState() => _HomePageState();
}
class _HomePageState extends State<HomePage> {
// 弹窗显示控制
bool _showDialog = false;
@override
Widget build(BuildContext context) {
return Scaffold(
appBar: AppBar(
title: Text('弹窗示例'),
),
body: Center(
child: RaisedButton(
child: Text('点击显示弹窗'),
onPressed: () => setState(() => _showDialog = true),
),
),
// 使用SimpleDialog作为弹窗内容
dialog: _showDialog ? SimpleDialog(
title: Text('Simple Dialog'),
children: <Widget>[
SimpleDialogOption(
child: Text('选项 1'),
onPressed: () {
Navigator.pop(context); // 关闭弹窗
setState(() => _showDialog = false);
},
),
SimpleDialogOption(
child: Text('选项 2'),
onPressed: () {
Navigator.pop(context);
setState(() => _showDialog = false);
},
),
],
) : null,
);
}
}
这段代码展示了如何在Flutter应用中使用SimpleDialog
作为弹窗,并在用户选择后关闭弹窗。_showDialog
变量用于跟踪是否应该显示弹窗。当用户点击按钮时,_showDialog
设置为true
,并重新调用build
方法,在dialog
属性中展示弹窗。每个SimpleDialogOption
都有一个onPressed
回调,用于关闭弹窗并重置_showDialog
变量。
评论已关闭