跳到主要内容

网格与堆叠(Grid and Stack)

行(Row)和列(Column)把子级排成一条线。网格和堆叠覆盖另外两种常见模式:网格把子级放进由列和行组成的单元格,堆叠则把子级叠在同一空间里。

要使用其中一种,选中布局,并在 检查器(Inspector) 中把它的布局类型设为 网格(Grid) 或 堆叠(Stack)。参见布局类型。

网格(Grid)​

网格布局把子级排进由列和行组成的单元格。当内容应在两个方向上对齐时使用网格,例如物品栏、照片库或卡片仪表盘。

新网格从一列一行开始。在 检查器(Inspector) 中添加列和行来搭出网格。选中网格时,舞台会显示每个单元格的参考线,以及单元格之间间隙的底纹。

设置列和行的尺寸(Sizing columns and rows)​

每一列和每一行(也叫轨道)都有自己的尺寸。轨道使用与布局相同的缩放类型,作用于整列或整行:

  • 填充(Fill): 轨道分得剩余空间的一份,以 fr(填充比例)为单位。三列都设为 1fr 时均分宽度,而 2fr 列占据的空间是 1fr 列的两倍。新轨道使用 1fr。
  • 固定(Fixed): 轨道有设定的宽度或高度,以点为单位,或为网格的百分比。
  • 包裹(Hug): 轨道缩小或增长,以适合其中最大的子级。

拖拽轨道可重新排序。要同时编辑多条轨道,按住 Shift 并点击它们的轨道编号。

要在列和行之间留出空间,使用网格的间隙(gap)。水平间隙分隔列,垂直间隙分隔行。

把子级放进单元格(Placing children in cells)​

子级按层级顺序放入网格。每一行从左到右填满,再进入下一行。

要控制子级放在哪里,选中该子级,使用 检查器(Inspector) 中的 网格单元格(Grid Cell) 选项:

  • 单元格(Cell): 放置子级的列和行。默认情况下,子级会自动放进下一个可用单元格。
  • 跨度(Span): 子级跨越的列数或行数。

当子级跨越多个单元格时,它后面的子级会移到接下来的可用单元格。如果子级多于单元格,Rive 会添加行来容纳它们。要控制这些额外行的尺寸,请自己把它们加到网格上并设置缩放类型。

要让子级填满整个单元格,把它的宽度和高度设为 填充(Fill)。

💡

布局(Layout) 模式且设为 填充(Fill) 的组件实例会填满单元格,但不能使用 跨度(Span) 等网格单元格选项。要让组件跨单元格,把实例包进一个布局,将该布局的宽高设为 填充(Fill),再在这个布局上设置跨度。

为网格制作动画(Animating a Grid)​

你可以为轨道尺寸、间隙,以及网格单元格的跨度和位置设置关键帧,从而让子级动画到新的单元格。列数和行数不能制作动画。

堆叠(Stack)​

堆叠布局把所有子级放在同一空间里,彼此层叠。用堆叠制作由分层部件组成的东西,例如带背景、图稿和标签的卡片,或形状上叠着图标的按钮。

子级按层级顺序绘制。层级(Hierarchy) 中最上面的子级画在最前,最下面的子级画在最后。

设置层的尺寸和位置(Sizing and positioning layers)​

每个子级的尺寸决定它覆盖堆叠的多少:

  • 填充(Fill): 子级覆盖整个堆叠。用于背景,以及用自己的内边距和对齐来放置内容的层。
  • 固定(Fixed) 或 包裹(Hug): 子级保持自己的尺寸,堆叠的对齐决定它放在哪里。

层遵循与行或列中的子级相同的尺寸规则。参见尺寸与定位。

大于堆叠的内容会按其对齐方式溢出。居中的堆叠向四边均匀溢出,对齐到左下的堆叠则向上和向右溢出。

看完还有疑问?进群交流下!
与众多 Rive 创作者、开发者一起交流探讨与答疑解惑。
加入交流群