布局 响应式 UI

响应式 UI

Material Design 的响应式布局能适应任何屏幕尺寸。这个 UI 指南包括:用于确保布局一致性的弹性网格,在不同屏幕上的断点细节,以及应用从小屏幕到大屏幕如何缩放的说明。

断点 Expand and collapse content An arrow that points down when collapsed and points up when expanded.

为了获得最佳用户体验,Material Design 应该为以下断点适配布局:480、600、840、960、1280、1440、以及 1600dp。

通过这款工具预览 Material Design 在桌面、手机和平板上的断点。

Material Design 断点系统

1. 布局中的摘要和详细信息视图

  • 布局宽度小于 600dp 时,可以使用单级的内容层次(可以是摘要或详细信息,但两者不能同时显示)填满屏幕。
  • 布局宽度超过 600dp 时,可以同时放置两级内容层次(可以同时显示摘要和详细信息)。

2. 最大屏幕宽度

布局宽度超过 1600dp 时,可以让布局宽度一直增加,直到达到最大宽度。此时,网格可以执行以下的某一项:

  • 变成居中对齐,在内容区域两侧增加外边距
  • 保持左对齐,同时不断增加内容右侧外边距
  • 内容宽度继续增加,同时展示出更多额外的内容

断点系统

这些断点描述了不同屏幕、设备和方向下,列和宽度的规范。

对于某些尺寸,即使设备发生旋转,值也保持不变。因此,任一方向上的最小宽度是定义值。

* 设备的最小宽度 <600 时为 16dp

** 桌面端的断点比列表中的值小 16dp,以适应浏览器界面(chrome)的差异。

断点(dp)

手机 / 平板纵向

手机 / 平板横向

窗口

列数

间距

0

小尺寸手机

xsmall

4

16

360

中尺寸手机

xsmall

4

16

400

大尺寸手机

xsmall

4

16

480

大尺寸手机

小尺寸手机

xsmall

4

16

600

小尺寸平板

中尺寸手机

small

8

16/24*

720

大尺寸平板

大尺寸手机

small

8

16/24*

840

大尺寸平板

大尺寸手机

small

12

16/24*

960

小尺寸平板

small

12

24

1024**

大尺寸平板

medium

12

24

1280**

大尺寸平板

medium

12

24

1440**

large

12

24

1600**

large

12

24

1920**

xlarge

12

24

网格 Expand and collapse content An arrow that points down when collapsed and points up when expanded.

Material Design 的响应式 UI 基于 12 列网格布局。此网格系统既能保证不同布局间的视觉一致性,又能灵活适应多种设计宽度。网格列的数量取决于断点系统。

此动画展示了界面和面板是如何与 12 列网格对齐的。

外边距和间距

响应式网格更注重一致的外边距和间距宽度,而不是列宽。Material Design 的外边距和列都遵循 8dp 的基准网格。外边距和间距可以是 8、16、24、或 40dp。

外边距和间距不需要相等。例如,可以在同一布局中使用 40dp 的外边距和 24dp 的间距。

此动画展示了下列外边距和间距宽度的变化:

  1. 8dp 外边距和间距
  2. 16dp 外边距和间距
  3. 24dp 外边距和间距
  4. 40dp 外边距和间距
  5. 40dp 的外边距和 24dp 的间距

全宽 vs 居中

全宽网格使用流式列和断点来确定何时需要更改布局。

居中网格使用固定列,并在所有列(加上确切的外边距)不再适配屏幕时重新排列布局。

  1. 全宽网格
  2. 居中网格

面板对网格的影响

根据导航模式的定义,侧边导航可以是固定的、常驻的、或临时的。这些行为适用于任何面板,不仅限于侧边导航。

固定的

固定面板存在于响应式网格之外。面板出现在明确的断点处(当屏幕可容纳面板时)并挤压内容。面板中没有显示/隐藏面板的控件。

固定面板对响应式网格的影响

侧面板对网格的影响

此动画展示了两种状态:

  1. 出现一个常驻的侧边面板,会同时挤压内容和网格。在面板保持可见的同时,内容也是可以访问的。可以通过切换按钮隐藏面板。
  2. 出现一个临时的侧边面板,将网格内容推到屏幕外。触摸面板外部区域或面板内的项目,会隐藏面板。

常驻面板对响应式网格的影响

临时遮盖

临时面板在屏幕外时,不会影响网格或内容。当面板切换为可见时,可以通过触摸面板外部区域、或者面板内部项目再次隐藏面板。

临时面板对响应式网格的影响

表面行为 Expand and collapse content An arrow that points down when collapsed and points up when expanded.

当屏幕大小改变时,UI 会使用下列表面特定的行为来适配屏幕。

可见性

行为

定义

固定的

当有屏幕空间可用时,表面始终可见。

常驻的

表面的可见性可以在可见和隐藏之间切换。当表面可见时,与屏幕上的其他元素交互不会改变其可见性。

临时的

表面的可见性可以在可见和隐藏之间切换。当表面可见时,与屏幕上的其他元素交互,会将该表面切换为隐藏或最小化。

宽度

行为

定义

固定

当屏幕宽度变化时,元素宽度保持不变。

流式

元素宽度会随着屏幕大小变化而增长。

粘附

元素宽度是固定的,直到受到其他元素或断点的影响。

挤压

元素的宽度随着面板的出现而收缩。

推出

元素宽度保持不变,其位置随着面板的出现而水平变化,且可能被屏幕边缘部分遮挡。

遮盖

面板出现遮盖内容时,元素的宽度和位置始终保持不变。

描述术语

行为

定义

上方、下方

元素的 y 轴位置。

在上层、在下层

动画中元素的 z 轴位置。

前面、后面

元素的固定 z 轴位置。

左、右、居中

元素的 x 轴位置。

顶部、底部

元素的 y 轴位置相对于屏幕边缘的位置。

平面、抬升

元素的 z 轴位置与阴影。平面元素没有阴影。

内嵌、通栏

图片或元素的内边距。

摘要、详情

内容摘要,以及摘要的完整展开。

模式 Expand and collapse content An arrow that points down when collapsed and points up when expanded.

随着屏幕空间的增加,可以应用以下响应模式:

  • 出现
  • 变形
  • 分割
  • 重排
  • 扩展
  • 位移

出现

在小屏幕中隐藏的 UI 元素,随着屏幕可用空间的增加,可能会出现。

Material Design 中的可见导航抽屉元素

像导航抽屉这样的元素可能会变得可见。

Material Design 中的简单 UI 和复杂选项

一个简单的 UI 可能会出现更多强大或复杂的选项。

Material Design 中的小屏幕点击显示内容

在小屏幕上,只有点击某个元素才会出现的内容,当屏幕上有更多可用空间时,可能会默认显示。

变形

一个 UI 元素可以从一种格式变形成另一种格式。

Material Design 中的导航抽屉转为选项卡

导航抽屉可能变形成选项卡。

Material Design 中的列表可变为网格列表

列表可能变形成网格列表。

Material Design 中的菜单可变为工具栏图标

菜单可能变形成工具栏中的图标。

分割

一个图层的 UI 可能会被划分到新的可用空间中。

Material Design 中的导航抽屉和列表内容分隔视图

导航抽屉、列表内容、和详细内容被分隔以填满整个视图。

Material Design 中的左侧面板、列表和右侧面板分隔视图

随着空间增加,左侧面板、列表内容、和右侧面板被分隔到同一个视图中。

Material Design 中单个视图里的选项卡同级内容

选项卡中的同级内容被分隔到同一个视图中。

重排

UI 可以重排到可用空间中。

Material Design 中的单列元素可重组为多种组合

来自单列格式的元素可以重新排列成多种组合来填满内容区。

Material Design 中的水平选项卡可重排为垂直列表

水平选项卡可以重排成垂直列表。

Material Design 中的元素可根据屏幕比例重排

元素可以基于新屏幕的比例或设备方向在组件内部重排。

扩展

UI 可能扩展成更大的区域。

Material Design 中的内容卡片可扩展填充空间

内容卡片可以扩展来填充新的空间。

Material Design 中的对话框可按内容扩展

对话框可以根据内容或特定的增量按比例扩展。

位移

UI 组件可能会移动到更合适的位置。

小屏幕上的底部面板在 Material Design 中重新定位为菜单

小屏幕上的底部面板可能会作为菜单重新定位。

Material Design 中的浮动操作按钮(FAB)可移动到显眼位置

浮动操作按钮(FAB)可以移动到相对其他元素更显眼的位置。