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

列表索引

10m 55s
Rive 101 - List Index

本课程攻克了动态列表中“组件如何感知自身位置”这一进阶设计交接痛点。通过引入 List Index(列表索引) 属性,Rive 赋予了每个嵌套组件实例一个原生、只读的整型编号。核心业务效益在于:设计师可以摆脱繁琐的手动编码,直接在 Rive 状态机(State Machine)中将 List Index 作为切换条件(Conditions),实现“单项特殊着色”或“多组件全局互斥(单选机制)”等高阶动态 UI 交互,为跨端流式列表的大规模渲染提供了极简的免代码解决方案。

  • 0 基索引系统 (Zero-based Indexing): 放入 Rive 自动列表(Artboard List)中的第一个组件实例其 List Index 绝对为 0,后续项依次为 1, 2, 3。该属性由容器运行时隐式分发,属于只读(Cannot be edited)属性。
  • 全局互斥单选数学逻辑: 组件互斥的本质是利用状态机条件(Conditions)进行“局部与全局”的标量比对:
    • 进入高亮条件:$$index num = List Index$$
    • 退出高亮条件:$$index num \neq List Index$$

利用唯一的全局变量 index num 作为中介,一旦它被某个实例的监听器改写,其余不符合相等的组件实例会瞬间侦测到 信号并强制触发退回动画。

  • 边界防错最佳实践: 复杂 UI 逻辑中,状态机条件控制变量的默认初始值(Initial Value)不能随意留空或保持 0。应将其配置在安全边界之外(如本视频中的 -1 缺省处理),防止渲染引擎在初始化加载时发生非预期触发。
  • 预览模式(Preview Bound Values): 在涉及 Data Binding 驱动列表的场景下,若想在静止的编辑区调试 UI,必须打开顶部的 Preview 绑定值切换开关,否则动态列表在状态机未启动前将呈现空白。