我想在打开应用程序之前显示一个确认警报对话框,有人可以告诉我如何在颤振中实现这一点吗?
showDialog() 方法需要一个上下文,因此我应该将它与 buildContext 放在某个地方,我假设在应用程序的构建方法中,但是如何在屏幕上构建实际布局之前触发对话框?
在您initState
可以添加您的回调,它将显示您的对话框,WidgetsBinding.instance.addPostFrameCallback
该对话框将在布局后立即显示。您可以根据对话框结果更新布局状态。
class HomePageState extends State<HomePage> {
@override
void initState() {
super.initState();
WidgetsBinding.instance
.addPostFrameCallback((_) => showDialog(...));
}
@override
Widget build(BuildContext context) {
return Scaffold(
appBar: AppBar(
title: Text('HomePage'),
),
body: Container(),
);
}
Run Code Online (Sandbox Code Playgroud)
下面的代码有效,我想这就是答案
@override
Widget build(BuildContext context) {
Future.delayed(Duration.zero, () => showAlert(context));
return new WhateverLayoutYouWantToBeDisplayed();
}
void showAlert(BuildContext context) {
showDialog(
child: new WhateverCustomDialogYouHave(),
context: context);
}
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
4229 次 |
最近记录: |