跳到主要内容

Dialog vs Bottom Sheet vs Drawer

「弹一个东西出来」的三种说法

我需要在当前页面上弹出一层界面,用哪个?

对比表

Dialog vs Bottom Sheet vs Drawer
Pattern出现位置阻断用户底层页面主要平台
Modal模态框 / 对话框屏幕中央是完全遮蔽,灰掉全平台
Bottom Sheet底部弹出面板屏幕底部部分阻断保留可见,可感知上下文移动端
Drawer抽屉屏幕侧边部分阻断保留大部分可见全平台

← 左右滑动查看完整表格

真实 Demo 对比

Modal

模态框 / 对话框
点「删除照片」,弹窗会拦住你。试试 Tab 键(焦点被困在弹窗内)和 Esc(关闭)。

怎么判断:要用户「必须决定」时用它

Bottom Sheet

底部弹出面板
从屏幕底部升起的面板,高度按内容自适应(约 55%),底层页面仍然可见 —— 这就是 Bottom Sheet。

怎么判断:移动端的选择面板首选

Drawer

抽屉

抽屉会盖住这一半页面

从左侧滑出(这里限制在演示区内)。它和 Bottom Sheet 的区别是:Drawer 停靠在侧边,用来承载一整片内容。

怎么判断:导航或筛选要占一整片区域时

选型决策

  • 用户必须做出选择才能继续(删除确认、登录)Dialog
  • 移动端要从几个选项里挑,或要展示一排操作Bottom Sheet
  • 要放的东西比较多,像一个独立页面(导航、筛选)Drawer
  • 只是想让用户知道一件事做成了哪个都别用,用 Toast

一句话结论

三者最大的区别是「阻断感」。越强的阻断(Dialog)用于越必须的决定;越弱的阻断(Bottom Sheet / Drawer)用于用户可以随时跑掉的场景。

相关对比