我有一个像下面这样的showModalBottomSheet,我理解这是从BottomSheet继承的(对吗?)

      showModalBottomSheet<void>(
        context: context,
        builder: (BuildContext context) {
          return Container(
            height: 260.0,
            child: Text('I am text')
          );
        },
      );

我想做的是:

我想知道(听)模式何时关闭,并对其采取行动.

我看过这个onClosing回拨: https://docs.flutter.io/flutter/material/BottomSheet/onClosing.html

我怎样才能将监听器连接到showModalBottomSheet,然后在它触发时采取相应的操作呢?

推荐答案

也许这不是最好的解决方案,但是showModalBottomSheet返回一个"Future"以便您可以使用它.

例如:

void _showModal() {
    Future<void> future = showModalBottomSheet<void>(
      context: context,
      builder: (BuildContext context) {
        return Container(height: 260.0, child: Text('I am text'));
      },
    );
    future.then((void value) => _closeModal(value));
}
void _closeModal(void value) {
    print('modal closed');
}

Flutter相关问答推荐

更新到Flutter 3.22,卡片和导航栏背景中没有显示 colored颜色

壁炉有序在Flutter

如何在Firebase项目中更改包名称和包ID

Flutter 布局-全屏幕容器

flutter -当使用SingleChildScrollView包装我的列小部件时,它不会填充整个高度

Flutter 应用程序中的Firebase实时数据库中的orderByChild()不适用于我

在Fighter中,我如何在窗口的顶部和底部排列Widget?

Firebase存储不显示在Flutter 中链接的图像

为什么Spotify Auth API返回400,而";code_verier不正确?

如何在巡逻测试期间重新启动dart 侧应用程序状态?

如何对齐 AppBar Actions 中的文本?

如何将小部件代码移动到另一个文件以获得更好的可读性

在带有 flutter 的 Native Android 中,EventChannel.EventSink 始终为 null

将自定义容器附加到屏幕底部

ScaffoldMessenger 在等待键下方不起作用

Riverpod中stateNotiferProvider和notifierProvider的区别

对话框打开时如何使背景模糊?

Flutter - 定义按钮的优雅方式

使用 mocktail 包进行单元测试时,类型Null不是Future类型的子类型

Flutter 上Denim blue colored颜色 的 colored颜色 矩阵代码是什么?