因为项目需求,在进入某个页面时需要自动弹窗。flutter 弹窗方法主要有两种:
- showDialog()
- AlerDialog()
如果用按钮控制弹窗,用 showDialog() 此方法没有问题
但我的需求是进入页面就自动弹窗,我就想到的另一个方法 AlerDialog()
此时问题出现了:在我弹出窗口后调用 Navigator.pop() 返回时直接弹出顶层,出现黑屏
最后我的解决方法是:
在 initState() 内用 Future.delayed() 方法调用 showDialog() 方法,解决问题
@override
void initState() {
super.initState();
Future.delayed(Duration(seconds: 1), toShowDialog());
}
toShowDialog() {
showDialog<bool>(
context: context,
barrierDismissible: false,
builder: (BuildContext context) {
return AlertDialog(
content: Container(
height: 120,
child: Column(),
//代码...
),
);
},
);
}
20220727补充