ChildListWindow.ts 1.6 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849
  1. import { _decorator, Component, Node, Label, Prefab, instantiate, UITransform } from 'cc';
  2. import { IFDataSource, InfiniteList } from '../../core/InfiniteList/InfiniteList';
  3. import { ChildListItem } from './ChildListItem';
  4. const { ccclass, property } = _decorator;
  5. @ccclass('ChildListWindow')
  6. export class ChildListWindow extends Component implements IFDataSource {
  7. @property({ type: Prefab, tooltip: "Item预制体" }) item: Prefab;
  8. @property({ type: InfiniteList, tooltip: "任务列表" }) list: InfiniteList;
  9. private memberData: Array<any> = [];
  10. private totleData: Array<any> = [];
  11. private prefabHeight: number = 0;
  12. start() {
  13. let prefab = instantiate(this.item);
  14. this.prefabHeight = prefab.getComponent(UITransform).height;
  15. }
  16. public onParams(data: any): void {
  17. this.totleData = data;
  18. this.memberData = data["g1Members"];
  19. this.list.Init(this);
  20. }
  21. public onTabbarChange(t: Node, index: number): void {
  22. this.memberData = this.totleData[`g${index}Members`];
  23. this.list.Reload();
  24. }
  25. //#region IFDataSource
  26. public GetCellData(dataIndex: number): any {
  27. return this.memberData[dataIndex];
  28. }
  29. public GetCellNumber(): number {
  30. return this.memberData.length;
  31. }
  32. public GetCellSize(index: number): number {
  33. return this.prefabHeight ? this.prefabHeight : 99;
  34. }
  35. public GetCellView(index: number): ChildListItem {
  36. let node = instantiate(this.item);
  37. return node.getComponent(ChildListItem);
  38. }
  39. public GetCellIdentifer(index: number): string {
  40. return "ChildListItem";
  41. }
  42. //#endregion
  43. }