如何在flutter中获取showModalBottomSheet的onDismiss回调?

问题描述 投票:0回答:1

我有一个showModalBottomSheet,并且isDismissible设置为true,当我在showModalBottomSheet之外单击时,我想接收它的回调。

在showModalBottomSheet中,我具有隐藏按钮,单击隐藏按钮后,我正在执行Navigator.pop(context)以隐藏对话框,

尝试过whenComplete()then(),但即使单击“隐藏”按钮,每次关闭我都会得到回调。

我该怎么办?

flutter dart flutter-layout
1个回答
0
投票

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");
                    }
                  },
                );
© www.soinside.com 2019 - 2024. All rights reserved.