ScrollComponents 接口列表
RecyclerView 容器组件
开发者通过传入不同的视图管理器(如ListManager,WaterFlowManager,GridManager),创建对应的父容器组件视图。
| 参数 | 说明 |
|---|---|
| viewManager:IBaseManager | 视图绑定的视图管理器 |
PartReuse 容器组件
复用容器组件,绑定一个子组件,当绑定的子组件需要销毁时,会自动进入复用池,需要创建的时候,从复用池获取,并更新数据上屏。
| 参数 | 说明 |
|---|---|
| type:string | 用户设置的节点类型 |
| builder:wrappedBuilder | node节点绑定的组件模板 |
| data:ESObject | 组件绑定的数据 |
NodeItem
子组件节点,绑定在PartReuse中。
属性:
| 属性 | 类型 | 说明 |
|---|---|---|
| type | string | 用户设置的模板节点类型 |
| id | number | node节点ID |
| index | number | node节点对应的index |
| builder | wrappedBuilder | node节点绑定的组件模板 |
| node | BuilderNode | node节点绑定的实体布局组件 |
| status | NodeItemStatus | node节点的状态 |
| nodeType | NodeItemType | 子节点系统类型 |
| data | T | 组件绑定的数据 |
| container | ContainerType | node节点关联的父组件(ListItem等),ContainerType 是NodeItemType的联合类 |
接口:
| 接口 | 参数 | 参数说明 | 接口说明 |
|---|---|---|---|
| setData | (data: ESObject)=>void | 节点数据 | 设置节点的数据 |
| destroy | ()=>void | 销毁节点 |
NodeItemType
节点系统类型
| 参数 | 说明 |
|---|---|
| NONE | 无系统子节点 |
| PART_ITEM | 默认节点 |
| LIST_ITEM | ListItem节点 |
| FLOW_ITEM | WaterFlowItem节点 |
| LIST_ITEM_GROUP | ListItemGroup节点 |
| GRID_ITEM | GRID_ITEM节点 |
NodeItemStatus
节点状态
| 参数 | 说明 |
|---|---|
| DESTROY | 被销毁 |
| USING | 使用中 |
| RECYCLED | Item节点进入复用池 |
| RECYCLED_WITH_PARENT | PartReuse节点进入复用池 |
| PRE_CREATE | 预创建 |
RecycledPool
组件复用池,每个视图管理器默认绑定一个组件复用池,开发者可以通过视图管理器对复用池进行管理。
| 接口 | 参数 | 参数说明 | 接口描述 |
|---|---|---|---|
| getRecycledNodeCount | ( type:string)=>number | 组件模板类型 | 获取复用池指定模板类型节点数量 |
| setMaxRecycledSize | (type:string, count:number)=>void | 组件模板类型,最大数据 | 设置指定模板类型节点在复用池中的最大可容纳量 |
| clear | (type?:string)=>void | 组件模板类型 | 如果传入参数,则删除传入类型的节点,如果不传参数,会删除复用池所有的节点。 |
BaseManager
视图管理器基类,提供视图管理,事件监听,懒加载,组件复用,组件预创建等能力。
对外提供的ListManager,WaterFlowManager 和GridManager 都是BaseManager的子类,属性和方法一致,开发者根据业务选择合适的视图管理器。
参数:
| 参数 | 说明 |
|---|---|
| config: Config | 视图管理器配置 |
属性:
| 属性 | 类型 | 属性说明 |
|---|---|---|
| id | number | 视图管理器的id |
| type | ManagerTypeEnum | 视图管理器的类型 |
| listener | Listener | 事件监听器 |
| nodeAdapter | LazyNodeAdapter | 懒加载适配器,为视图提供懒加载能力 |
接口
| 接口 | 参数 | 参数说明 | 接口说明 |
|---|---|---|---|
| setViewStyle | (options?: WaterFlowOptions/ListOptions/GridOptions)=>WaterFlowAttribute/ListAttribute/GridAttribute | 组件参数对象 | 视图属性 |
| setItemViewStyle | (styleCallback: (view: FlowItemInterface, index: number, data: any) => void)=> void | 属性设置回调 | 视图属性 |
| onViewCreate | (view:ESObject) => void | 视图对象 | 根节点组件创建成功的回调 |
| onWillCreateItem | (index:number, data:ESObject)=> NodeItem | 子节点索引,数据源 | item节点将要创建时的回调 |
| onWillUpdateItem | (node:NodeItem) => void | 设置数据之后即将更新的节点 | item节点将要更新之前的回调 |
| onDataAdapter | (data:Params, node: NodeItem, index:number) => void | 数据源,子节点对象,节点索引 | 将数据源设置到子节点对象(如果调用upDate接口时,isReload参数设置为false,则必须要调用) |
| onWillRecycle | (node:NodeItem) => void | 视图子节点对象 | Item节点将要回收时的回调 |
| registerRecyclePool | (pool:RecycledPool) => void | 组件复用池 | 注册复用池 |
| getRecyclePool | () => RecycledPool | 获取复用池实例 | |
| registerNodeItem | (type:string, builder:wrappedBuilder) => void | 组件模板类型,组件构建函数 | 注册一个节点复用模板 |
| dequeueReusableNodeByType | (type:string) => NodeItem | 组件模板类型 | 获取一个指定类型的复用节点 。如果复用池存在节点,则直接返回可复用节点,如果没有则创建一个节点 |
| setDataSource | (data:ESObject[]) => void | 数据源对象数组 | 设置数据源 |
| preCreate | ( type: string, count: number = 1) | 组件模板类型,预创建的节点的个数 | 预创建指定类型节点个数,并添加到复用池 |
| visibleAreaChanged | (start:number,end:number) | 预取数据起点,预取数据终点 | 当可见区域发生变化时调用,预期节点数据 |
| registerFetchCallback | (callback:Prefetcher.FetchCallback => void) | 预取回调 | 注册预取函数回调 |
| registerCancelCallback | (callback:Prefetcher.CancelCallback => void) | 取消预取回调 | 注册取消预期函数回调 |
Config
| 参数 | 说明 |
|---|---|
| defaultNodeItem | 视图管理器默认子节点模板 |
| context | UI上下文 |
ManagerTypeEnum
视图管理器视图类型
| 名称 | 说明 |
|---|---|
| LIST | List布局视图 |
| WATER_FLOW | WaterFlow布局视图 |
| GRID | Grid布局视图 |
LazyNodeAdapter 类
基于NodeAdapter为视图管理器提供懒加载能力。
属性:
| 属性 | 类型 | 属性说明 |
|---|---|---|
| dataSource | PrefetchDataSource | 数据源操作对象 |
接口:
| 接口 | 参数 | 参数说明 | 接口说明 |
|---|---|---|---|
| pushData | (data:ESObject[]) => void | 数据源对象数组 | 批量添加数据 |
| insertData | (from:number, data: ESObject[]) => void | 插入位置索引,数据源对象数组 | 从索引位置将数组批量添加数据 |
| updateData | (from:number, data: ESObject[], isReload: boolean = true) => void | 修改位置索引,数据源对象数组,是否重新加载 | 从索引位置开始按照传入的数组更新数据(isReload默认为true,更新的时候节点会重新创建加载,如果设置为false则节点只更新数据,当参数设置为false时必须要实现视图管理器的onDataAdapter接口) |
| getData | (index:number) => ESObject | 目标位置索引 | 根据索引查找数据 |
| deleteData | (from:number, count:number) => void | 目标删除位置索引 ,删除元素的个数 | 从索引为from的位置开始删除 count个数据 |
| moveData | (from:number, to:number) => void | 初始位置索引,目标位置索引 | 将from位置的数据移动到to位置 |
错误码
| 错误类型 | 错误码 | 错误信息 |
|---|---|---|
| SYSTEM_ERROR | 50000001 | 内部错误 |
| NODE_CREATE_ERROR | 50000002 | Node创建失败, 未找到可用模版 |
| REUSE_WARN | 50000010 | 复用失败, 未找到可复用节点 |