布局 响应式 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 在桌面、手机和平板上的断点。

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元素,随着屏幕可用空间的增加,可能会出现。

像侧边栏这样的元素可能会变得可见。

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

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

变形

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

侧边栏导航可能变形成 Tab 选项卡。

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

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

分隔

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

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

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

Tab 栏中的同级内容被分隔到同一个视图中。

重排

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

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

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

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

扩展

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

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

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

位移

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

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

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