import { _decorator, Component, Node, Label, Prefab, instantiate, UITransform } from 'cc'; import { IFDataSource, InfiniteList } from '../../core/InfiniteList/InfiniteList'; import { ChildListItem } from './ChildListItem'; const { ccclass, property } = _decorator; @ccclass('ChildListWindow') export class ChildListWindow extends Component implements IFDataSource { @property({ type: Prefab, tooltip: "Item预制体" }) item: Prefab; @property({ type: InfiniteList, tooltip: "任务列表" }) list: InfiniteList; private memberData: Array = []; private totleData: Array = []; private prefabHeight: number = 0; start() { let prefab = instantiate(this.item); this.prefabHeight = prefab.getComponent(UITransform).height; } public onParams(data: any): void { this.totleData = data; this.memberData = data["g1Members"]; this.list.Init(this); } public onTabbarChange(t: Node, index: number): void { this.memberData = this.totleData[`g${index}Members`]; this.list.Reload(); } //#region IFDataSource public GetCellData(dataIndex: number): any { return this.memberData[dataIndex]; } public GetCellNumber(): number { return this.memberData.length; } public GetCellSize(index: number): number { return this.prefabHeight ? this.prefabHeight : 99; } public GetCellView(index: number): ChildListItem { let node = instantiate(this.item); return node.getComponent(ChildListItem); } public GetCellIdentifer(index: number): string { return "ChildListItem"; } //#endregion }