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);
        }
Exemplo n.º 2
0
        //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);
            }
        }