【问题标题】:How to get the onDismiss callback of showModalBottomSheet in flutter?如何在flutter中获取showModalBottomSheet的onDismiss回调?
【发布时间】:2020-03-22 23:53:30
【问题描述】:

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

在 showModalBottomSheet 中我有隐藏按钮,点击隐藏按钮我正在做Navigator.pop(context) 隐藏对话框,

尝试了whenComplete()then(),但即使点击隐藏按钮,我也会在每次关闭时收到回调。

我该怎么做?

【问题讨论】:

标签: flutter dart flutter-layout


【解决方案1】:

乌代,

你可以在弹出路由时传递参数来查看模态表是如何关闭的:

                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");
                    }
                  },
                );

【讨论】:

    猜你喜欢
    • 2017-05-15
    • 2023-03-05
    • 2019-12-09
    • 2019-11-15
    • 2022-08-08
    • 2019-12-26
    • 2021-01-06
    • 2019-05-20
    • 2022-01-06
    相关资源
    最近更新 更多