弹窗
介绍几个常用的交互组件,如:dialog、toast 等。
toast
官方没有内置支持,需要安装三方包,fluttertoast 正是一款简单的 toast 能力包。
showModalBottomSheet
底部弹出式菜单组件,这是 material内置组件

如果需要 弹窗内部的组件控制高度 设置 isScrollControlled: true 即可!
如果需要手动关闭,执行Navigator.pop(context)即可!
showDialog
模态窗组件,这是 material内置组件

自定义弹出页面
如果不利用以上现有能力,我们自己也可以写一个!
结合 Visibility,来控制隐藏或显示
注意两点:
- 如果你启用了导航栏 bottomNavigationBar,那么你自定义的组件将无法覆盖到它,必要时需要也用Visibility控制它隐藏
- 一般将全局的弹窗式页提前注册到 MaterialApp>body中,然后通过Visibility控制它隐藏,并且使用Scaffold+Positioned。
Overlay
Overlay 本身是用来插入浮动的元素,它通常会使用 OverlayEntry 来插入一个 widget。这个 widget 是 浮动的,它可以显示在屏幕的任何地方!
Visibility在 Flutter 和 CSS 中都用于控制元素的显示与隐藏,但隐藏的元素依然会占据空间。Overlay在 Flutter 和 CSS 中都用于在页面上 浮动 显示内容,通常不影响布局,且可以在页面的任何位置显示。
