我有一个showModalBottomSheet,并且isDismissible设置为true,当我在showModalBottomSheet之外单击时,我想接收它的回调。
在showModalBottomSheet中,我具有隐藏按钮,单击隐藏按钮后,我正在执行Navigator.pop(context)
以隐藏对话框,
尝试过whenComplete()
和then()
,但即使单击“隐藏”按钮,每次关闭我都会得到回调。
我该怎么办?
Uday,
您可以在弹出路径时传递参数,以查看如何关闭模式表:
showModalBottomSheet<bool>(
context: context,
isDismissible: true,
builder: (BuildContext context) {
return Center(
child: RaisedButton(
child: const Text("hide"),
onPressed: () => Navigator.of(context).pop(true), // pass true indicating that it was hidden via button
),
);
},
).then(
(isManuallyHidden) {
if (isManuallyHidden ?? false) {
print("hidden via button");
} else {
print("dismissed");
}
},
);