LoopListViewItem2 OnGetItemByIndex(LoopListView2 listView, int index) { if (index < 0) { return(null); } TreeViewItemCountData countData = mTreeItemCountMgr.QueryTreeItemByTotalIndex(index); if (countData == null) { return(null); } int treeItemIndex = countData.mTreeItemIndex; TreeViewItemData treeViewItemData = TreeViewDataSourceMgr.Get.GetItemDataByIndex(treeItemIndex); if (index == countData.mBeginIndex) { LoopListViewItem2 item = listView.NewListViewItem("ItemPrefab1"); ListItem12 itemScript = item.GetComponent <ListItem12>(); if (item.IsInitHandlerCalled == false) { item.IsInitHandlerCalled = true; itemScript.Init(); itemScript.SetClickCallBack(this.OnExpandClicked); } item.UserIntData1 = treeItemIndex; item.UserIntData2 = 0; itemScript.mText.text = treeViewItemData.mName; itemScript.SetItemData(treeItemIndex, countData.mIsExpand); return(item); } else { int childIndex = index - countData.mBeginIndex - 1; ItemData itemData = treeViewItemData.GetChild(childIndex); if (itemData == null) { return(null); } LoopListViewItem2 item = listView.NewListViewItem("ItemPrefab2"); ListItem13 itemScript = item.GetComponent <ListItem13>(); if (item.IsInitHandlerCalled == false) { item.IsInitHandlerCalled = true; itemScript.Init(); } item.UserIntData1 = treeItemIndex; item.UserIntData2 = childIndex; itemScript.SetItemData(itemData, treeItemIndex, childIndex); return(item); } }
private LoopListViewItem2 OnGetItemByIndex(LoopListView2 listView, int index) { if (index < 0) { return((LoopListViewItem2)null); } TreeViewItemCountData viewItemCountData = this.mTreeItemCountMgr.QueryTreeItemByTotalIndex(index); if (viewItemCountData == null) { return((LoopListViewItem2)null); } int mTreeItemIndex = viewItemCountData.mTreeItemIndex; TreeViewItemData itemDataByIndex = TreeViewDataSourceMgr.Get.GetItemDataByIndex(mTreeItemIndex); if (!viewItemCountData.IsChild(index)) { LoopListViewItem2 loopListViewItem2 = listView.NewListViewItem("ItemPrefab1"); ListItem12 component = (ListItem12)((Component)loopListViewItem2).GetComponent <ListItem12>(); if (!loopListViewItem2.IsInitHandlerCalled) { loopListViewItem2.IsInitHandlerCalled = true; component.Init(); component.SetClickCallBack(new Action <int>(this.OnExpandClicked)); } loopListViewItem2.UserIntData1 = mTreeItemIndex; loopListViewItem2.UserIntData2 = 0; component.mText.set_text(itemDataByIndex.mName); component.SetItemData(mTreeItemIndex, viewItemCountData.mIsExpand); return(loopListViewItem2); } int childIndex = viewItemCountData.GetChildIndex(index); ItemData child = itemDataByIndex.GetChild(childIndex); if (child == null) { return((LoopListViewItem2)null); } LoopListViewItem2 loopListViewItem2_1 = listView.NewListViewItem("ItemPrefab2"); ListItem13 component1 = (ListItem13)((Component)loopListViewItem2_1).GetComponent <ListItem13>(); if (!loopListViewItem2_1.IsInitHandlerCalled) { loopListViewItem2_1.IsInitHandlerCalled = true; component1.Init(); } loopListViewItem2_1.UserIntData1 = mTreeItemIndex; loopListViewItem2_1.UserIntData2 = childIndex; component1.SetItemData(child, mTreeItemIndex, childIndex); return(loopListViewItem2_1); }
//when a TreeItem or TreeChildItem is getting in the scrollrect viewport, //this method will be called with the item’ index as a parameter, //to let you create the item and update its content. LoopListViewItem2 OnGetItemByIndex(LoopListView2 listView, int index) { if (index < 0) { return(null); } /*to check the index'th item is a TreeItem or a TreeChildItem.for example, * * 0 TreeItem0 * 1 TreeChildItem0_0 * 2 TreeChildItem0_1 * 3 TreeChildItem0_2 * 4 TreeChildItem0_3 * 5 TreeItem1 * 6 TreeChildItem1_0 * 7 TreeChildItem1_1 * 8 TreeChildItem1_2 * 9 TreeItem2 * 10 TreeChildItem2_0 * 11 TreeChildItem2_1 * 12 TreeChildItem2_2 * * the first column value is the param 'index', for example, if index is 1, * then we should return TreeChildItem0_0 to SuperScrollView, and if index is 5, * then we should return TreeItem1 to SuperScrollView */ TreeViewItemCountData countData = mTreeItemCountMgr.QueryTreeItemByTotalIndex(index); if (countData == null) { return(null); } int treeItemIndex = countData.mTreeItemIndex; TreeViewItemData treeViewItemData = TreeViewDataSourceMgr.Get.GetItemDataByIndex(treeItemIndex); if (countData.IsChild(index) == false)// if is a TreeItem { //get a new TreeItem LoopListViewItem2 item = listView.NewListViewItem("ItemPrefab1"); ListItem12 itemScript = item.GetComponent <ListItem12>(); if (item.IsInitHandlerCalled == false) { item.IsInitHandlerCalled = true; itemScript.Init(); itemScript.SetClickCallBack(this.OnExpandClicked); } //update the TreeItem's content itemScript.mText.text = treeViewItemData.mName; itemScript.SetItemData(treeItemIndex, countData.mIsExpand); return(item); } else // if is a TreeChildItem { //childIndex is from 0 to ChildCount. //for example, TreeChildItem0_0 is the 0'th child of TreeItem0 //and TreeChildItem1_2 is the 2'th child of TreeItem1 int childIndex = countData.GetChildIndex(index); ItemData itemData = treeViewItemData.GetChild(childIndex); if (itemData == null) { return(null); } //get a new TreeChildItem LoopListViewItem2 item = listView.NewListViewItem("ItemPrefab2"); ListItem13 itemScript = item.GetComponent <ListItem13>(); if (item.IsInitHandlerCalled == false) { item.IsInitHandlerCalled = true; itemScript.Init(); } //update the TreeChildItem's content itemScript.SetItemData(itemData, treeItemIndex, childIndex); return(item); } }