📜  mainBottomSheet 关闭长笛 - Dart (1)

📅  最后修改于: 2023-12-03 15:32:48.160000             🧑  作者: Mango

mainBottomSheet 关闭长笛 - Dart

mainBottomSheet 是一种用于创建底部滑动面板的Flutter Widget,这个面板可以用于显示一些与主视图相关的附加信息或操作,比如显示一些选项、弹出菜单等。

在某些情况下,当用户完成了某个操作或触发了某个事件后,我们需要关闭 mainBottomSheet,这篇文章将介绍如何在Dart中关闭 mainBottomSheet

关闭 mainBottomSheet

要关闭 mainBottomSheet,我们需要使用 Navigator.pop() 方法。这个方法可以将 mainBottomSheet 从当前Navigator 中移除。

下面是一个简单的例子,演示了如何使用 Navigator.pop() 来关闭标题为 “选项” 的 mainBottomSheet:

VoidCallback _closeBottomSheetCallback(BuildContext context) {
  return () {
    Navigator.pop(context);
  };
}

void _showBottomSheet(BuildContext context) {
  // 显示 bottom sheet
  showModalBottomSheet(
      context: context,
      builder: (BuildContext context) {
        return BottomSheet(
          title: Text('选项'),
          onClosing: _closeBottomSheetCallback(context),
          builder: (BuildContext context) {
            return Container(
              child: Text('这里是底部滑动面板'),
              padding: EdgeInsets.all(20.0),
            );
          },
        );
      });
}

在这个例子中,我们创建了一个名为 _closeBottomSheetCallback 的函数,它返回一个无参数函数。这个函数的目的是构建一个在点击面板外部区域时自动关闭 mainBottomSheet 的回调函数。

现在,我们可以在 mainBottomSheet 的构造函数中作为 onClosing 参数传入它,这将确保在用户点击面板外部时,mainBottomSheet 会自动关闭。

接下来,在合适的时间(比如用户完成了某个操作)触发 _closeBottomSheetCallback 函数,调用 Navigator.pop(context) 来关闭 mainBottomSheet

总结

在Dart中,我们可以使用 Navigator.pop() 来关闭 mainBottomSheet。我们需要创建一个回调函数,将它作为参数传递给mainBottomSheetonClosing 参数中。在适当的时候,调用这个回调函数就可以关闭 mainBottomSheet