Rive 101 logoRive 101
关于项目📋 变更总览EN
0%
进度0/88
7.5

使用动态组件进行回流

12m 45s
Rive 101 - Reflow With Dynamic Components

本课程的核心教学目标是掌握 Rive 响应式流式布局中的“自动重排”(Reflow)深度机理,以及如何通过嵌套多状态组件(Dynamic Components)打破静态设计的边界。

针对现代跨端 UI 动效设计中,当某个组件在特定交互下(例如点击展开、卡片切换)物理尺寸发生改变,容易导致周围其他元素发生遮挡或重叠的行业痛点,Rive 提供了完美的底层流式解法。通过合理嵌套画板并将子图层绑定到流式列容器(Column Layout),当内部动态组件的运行尺寸发生阶跃时,整个系统的剩余元素会自适应进行位置重排(Reflow),为 Web、移动端乃至车载 UI 提供了完全免代码硬编码的流式动态交接标准。

  • 嵌套组件尺寸回传阻断(常见陷阱): 动态重排(Reflow)成立的前提是嵌套组件实例的尺寸属性必须设为 Hug。如果错误地将其设为 Fixed 或 Fill,子组件内部状态机动画即便改动了画布,外层主布局也无法感知其物理尺寸的扩张,从而导致画面被裁切或重叠。
  • 状态机穿透机制(Nested Triggering): Rive 运行时支持事件和变量的逐级穿透。在主画布上创建的监听器可以直接将其 Action 绑定到特定“嵌套艺术板实例(Nested Artboard Instance)”公开的 Inputs 上,从而在全局上下文里完美操控局部组件。
  • 重排性能优化要点: 虽然 Rive 的布局引擎(基于 C++ 编写的 Yoga 变体)极其高效,但在包含大量多层嵌套组件的复杂页面中,频繁触发全局 Reflow 仍会消耗一定的 CPU 计算资源。在交付到低端移动端或嵌入式设备时,应尽量减少同时发生形状改变的动态组件数量。
  • 布局方向继承性: 当主列容器(Column)包裹了行布局组件(Row Component),组件在内部由 Row 变换为 Column 时,它腾出的横向或纵向剩余空间会被 fr(Fill Ratio)机制秒级重新计算,这使得混合卡片网格流(Masonry-like Layout)在 Rive 内部变得极其简单。