只有在一个函数中调用了2 showDialog()时,Flutter才会显示对话框



我在flutter web中有一个showDialog((函数,但它只能这样工作(一个函数中有两个显示对话框(,如果我注释掉另一个,对话框将不会显示。我真的不明白为什么我需要放2个showDialog((才能显示它。这是代码:

onDeleteTap(String id) async {
print(id);
await showDialog<void>(
context: context,
barrierDismissible: false,
builder: (BuildContext context) {
return AlertDialog(
title: Text('Hapus?'),
content: SingleChildScrollView(
child: ListBody(
children: <Widget>[
],
),
),
actions: <Widget>[
TextButton(
child: Text('Batal'),
onPressed: () {
},
),
SizedBox(
width: 150.0,
child: ErrorButton(
text: "Hapus",
onClick: () {
},
),
),
],
);
},
);
await showDialog<void>(
context: context,
barrierDismissible: false,
builder: (BuildContext context) {
return AlertDialog(
title: Text('Hapus?'),
content: SingleChildScrollView(
child: ListBody(
children: <Widget>[
],
),
),
actions: <Widget>[
TextButton(
child: Text('Batal'),
onPressed: () {
},
),
SizedBox(
width: 150.0,
child: ErrorButton(
text: "Hapus",
onClick: () {
},
),
),
],
);
},
);

我认为在调用onDeleteTap之前,您必须使用navigator.pop(上下文(。您可以通过不显示任何对话框来检查您是否真的在弹出屏幕(如果您正在弹出屏幕,您当前的屏幕将关闭,或者您将有一个黑屏(,或者您可以使用debbuger在进入此代码之前检查所有通过的行。

相关内容

  • 没有找到相关文章

最新更新