Пример #1
0
        LoopGridViewItem OnGetItemByRowColumn(LoopGridView gridView, int itemIndex, int row, int column)
        {
            //get the data to showing
            ItemData itemData = DataSourceMgr.Get.GetItemDataByIndex(itemIndex);

            if (itemData == null)
            {
                return(null);
            }

            /*
             * get a new item. Every item can use a different prefab,
             * the parameter of the NewListViewItem is the prefab’name.
             * And all the prefabs should be listed in ItemPrefabList in LoopGridView Inspector Setting
             */
            LoopGridViewItem item = gridView.NewListViewItem("ItemPrefab0");

            ListItem18 itemScript = item.GetComponent <ListItem18>();//get your own component

            // IsInitHandlerCalled is false means this item is new created but not fetched from pool.
            if (item.IsInitHandlerCalled == false)
            {
                item.IsInitHandlerCalled = true;
                itemScript.Init();// here to init the item, such as add button click event listener.
            }
            //update the item’s content for showing, such as image,text.
            itemScript.SetItemData(itemData, itemIndex, row, column);
            return(item);
        }
Пример #2
0
        public LoopGridViewItem GetItem()
        {
            mCurItemIdCount++;
            LoopGridViewItem tItem = null;

            if (mTmpPooledItemList.Count > 0)
            {
                int count = mTmpPooledItemList.Count;
                tItem = mTmpPooledItemList[count - 1];
                mTmpPooledItemList.RemoveAt(count - 1);
                tItem.gameObject.SetActive(true);
            }
            else
            {
                int count = mPooledItemList.Count;
                if (count == 0)
                {
                    tItem = CreateItem();
                }
                else
                {
                    tItem = mPooledItemList[count - 1];
                    mPooledItemList.RemoveAt(count - 1);
                    tItem.gameObject.SetActive(true);
                }
            }
            tItem.ItemId = mCurItemIdCount;
            return(tItem);
        }
Пример #3
0
 public LoopGridViewItem GetItemByRow(int row)
 {
     for (LoopGridViewItem loopGridViewItem = this.mFirst; Object.op_Inequality((Object)loopGridViewItem, (Object)null); loopGridViewItem = loopGridViewItem.NextItem)
     {
         if (loopGridViewItem.Row == row)
         {
             return(loopGridViewItem);
         }
     }
     return((LoopGridViewItem)null);
 }
Пример #4
0
 public LoopGridViewItem GetItemByColumn(int column)
 {
     for (LoopGridViewItem loopGridViewItem = this.mFirst; Object.op_Inequality((Object)loopGridViewItem, (Object)null); loopGridViewItem = loopGridViewItem.NextItem)
     {
         if (loopGridViewItem.Column == column)
         {
             return(loopGridViewItem);
         }
     }
     return((LoopGridViewItem)null);
 }
Пример #5
0
 public void Clear()
 {
     for (LoopGridViewItem loopGridViewItem = this.mFirst; Object.op_Inequality((Object)loopGridViewItem, (Object)null); loopGridViewItem = loopGridViewItem.NextItem)
     {
         loopGridViewItem.PrevItem = (LoopGridViewItem)null;
         loopGridViewItem.NextItem = (LoopGridViewItem)null;
     }
     this.mFirst = (LoopGridViewItem)null;
     this.mLast  = (LoopGridViewItem)null;
     this.mCount = 0;
 }
Пример #6
0
 public void Init(GameObject prefabObj, int createCount, RectTransform parent)
 {
     mPrefabObj       = prefabObj;
     mPrefabName      = mPrefabObj.name;
     mInitCreateCount = createCount;
     mItemParent      = parent;
     mPrefabObj.SetActive(false);
     for (int i = 0; i < mInitCreateCount; ++i)
     {
         LoopGridViewItem tViewItem = CreateItem();
         RecycleItemReal(tViewItem);
     }
 }
Пример #7
0
        public LoopGridViewItem GetItemByRow(int row)
        {
            LoopGridViewItem cur = mFirst;

            while (cur != null)
            {
                if (cur.Row == row)
                {
                    return(cur);
                }
                cur = cur.NextItem;
            }
            return(null);
        }
Пример #8
0
        public LoopGridViewItem GetItemByColumn(int column)
        {
            LoopGridViewItem cur = mFirst;

            while (cur != null)
            {
                if (cur.Column == column)
                {
                    return(cur);
                }
                cur = cur.NextItem;
            }
            return(null);
        }
Пример #9
0
        public void Clear()
        {
            LoopGridViewItem current = mFirst;

            while (current != null)
            {
                current.PrevItem = null;
                current.NextItem = null;
                current          = current.NextItem;
            }
            mFirst = null;
            mLast  = null;
            mCount = 0;
        }
Пример #10
0
        public LoopGridViewItem CreateItem()
        {
            GameObject gameObject = (GameObject)Object.Instantiate <GameObject>((M0)this.mPrefabObj, Vector3.get_zero(), Quaternion.get_identity(), (Transform)this.mItemParent);

            gameObject.SetActive(true);
            RectTransform component1 = (RectTransform)gameObject.GetComponent <RectTransform>();

            ((Transform)component1).set_localScale(Vector3.get_one());
            component1.set_anchoredPosition3D(Vector3.get_zero());
            ((Transform)component1).set_localEulerAngles(Vector3.get_zero());
            LoopGridViewItem component2 = (LoopGridViewItem)gameObject.GetComponent <LoopGridViewItem>();

            component2.ItemPrefabName = this.mPrefabName;
            return(component2);
        }
Пример #11
0
        public LoopGridViewItem CreateItem()
        {
            GameObject go = GameObject.Instantiate <GameObject>(mPrefabObj, Vector3.zero, Quaternion.identity, mItemParent);

            go.SetActive(true);
            RectTransform rf = go.GetComponent <RectTransform>();

            rf.localScale         = Vector3.one;
            rf.anchoredPosition3D = Vector3.zero;
            rf.localEulerAngles   = Vector3.zero;
            LoopGridViewItem tViewItem = go.GetComponent <LoopGridViewItem>();

            tViewItem.ItemPrefabName = mPrefabName;
            return(tViewItem);
        }
        LoopGridViewItem OnGetItemByRowColumn(LoopGridView gridView, int itemIndex, int row, int column)
        {
            ItemData itemData = DataSourceMgr.Get.GetItemDataByIndex(itemIndex);

            if (itemData == null)
            {
                return(null);
            }
            LoopGridViewItem item       = gridView.NewListViewItem("ItemPrefab0");
            ListItem19       itemScript = item.GetComponent <ListItem19>();

            if (item.IsInitHandlerCalled == false)
            {
                item.IsInitHandlerCalled = true;
                itemScript.Init();
            }
            itemScript.SetItemData(itemData, itemIndex, row, column);
            return(item);
        }
Пример #13
0
        public LoopGridViewItem RemoveLast()
        {
            LoopGridViewItem ret = mLast;

            if (mFirst == null)
            {
                return(ret);
            }
            if (mFirst == mLast)
            {
                mFirst = null;
                mLast  = null;
                --mCount;
                return(ret);
            }
            mLast          = mLast.PrevItem;
            mLast.NextItem = null;
            --mCount;
            return(ret);
        }
Пример #14
0
        public LoopGridViewItem RemoveLast()
        {
            LoopGridViewItem mLast = this.mLast;

            if (Object.op_Equality((Object)this.mFirst, (Object)null))
            {
                return(mLast);
            }
            if (Object.op_Equality((Object)this.mFirst, (Object)this.mLast))
            {
                this.mFirst = (LoopGridViewItem)null;
                this.mLast  = (LoopGridViewItem)null;
                --this.mCount;
                return(mLast);
            }
            this.mLast          = this.mLast.PrevItem;
            this.mLast.NextItem = (LoopGridViewItem)null;
            --this.mCount;
            return(mLast);
        }
Пример #15
0
 public void ReplaceItem(LoopGridViewItem curItem, LoopGridViewItem newItem)
 {
     newItem.PrevItem = curItem.PrevItem;
     newItem.NextItem = curItem.NextItem;
     if (newItem.PrevItem != null)
     {
         newItem.PrevItem.NextItem = newItem;
     }
     if (newItem.NextItem != null)
     {
         newItem.NextItem.PrevItem = newItem;
     }
     if (mFirst == curItem)
     {
         mFirst = newItem;
     }
     if (mLast == curItem)
     {
         mLast = newItem;
     }
 }
Пример #16
0
 public void AddFirst(LoopGridViewItem newItem)
 {
     newItem.PrevItem = null;
     newItem.NextItem = null;
     if (mFirst == null)
     {
         mFirst          = newItem;
         mLast           = newItem;
         mFirst.PrevItem = null;
         mFirst.NextItem = null;
         mCount++;
     }
     else
     {
         mFirst.PrevItem  = newItem;
         newItem.PrevItem = null;
         newItem.NextItem = mFirst;
         mFirst           = newItem;
         mCount++;
     }
 }
Пример #17
0
 public void AddLast(LoopGridViewItem newItem)
 {
     newItem.PrevItem = (LoopGridViewItem)null;
     newItem.NextItem = (LoopGridViewItem)null;
     if (Object.op_Equality((Object)this.mFirst, (Object)null))
     {
         this.mFirst          = newItem;
         this.mLast           = newItem;
         this.mFirst.PrevItem = (LoopGridViewItem)null;
         this.mFirst.NextItem = (LoopGridViewItem)null;
         ++this.mCount;
     }
     else
     {
         this.mLast.NextItem = newItem;
         newItem.PrevItem    = this.mLast;
         newItem.NextItem    = (LoopGridViewItem)null;
         this.mLast          = newItem;
         ++this.mCount;
     }
 }
Пример #18
0
 public void ReplaceItem(LoopGridViewItem curItem, LoopGridViewItem newItem)
 {
     newItem.PrevItem = curItem.PrevItem;
     newItem.NextItem = curItem.NextItem;
     if (Object.op_Inequality((Object)newItem.PrevItem, (Object)null))
     {
         newItem.PrevItem.NextItem = newItem;
     }
     if (Object.op_Inequality((Object)newItem.NextItem, (Object)null))
     {
         newItem.NextItem.PrevItem = newItem;
     }
     if (Object.op_Equality((Object)this.mFirst, (Object)curItem))
     {
         this.mFirst = newItem;
     }
     if (!Object.op_Equality((Object)this.mLast, (Object)curItem))
     {
         return;
     }
     this.mLast = newItem;
 }
        private LoopGridViewItem OnGetItemByRowColumn(
            LoopGridView gridView,
            int itemIndex,
            int row,
            int column)
        {
            ItemData itemDataByIndex = DataSourceMgr.Get.GetItemDataByIndex(itemIndex);

            if (itemDataByIndex == null)
            {
                return((LoopGridViewItem)null);
            }
            LoopGridViewItem loopGridViewItem = gridView.NewListViewItem("ItemPrefab0");
            ListItem18       component        = (ListItem18)((Component)loopGridViewItem).GetComponent <ListItem18>();

            if (!loopGridViewItem.IsInitHandlerCalled)
            {
                loopGridViewItem.IsInitHandlerCalled = true;
                component.Init();
            }
            component.SetItemData(itemDataByIndex, itemIndex, row, column);
            return(loopGridViewItem);
        }
Пример #20
0
 void RecycleItemReal(LoopGridViewItem item)
 {
     item.gameObject.SetActive(false);
     mPooledItemList.Add(item);
 }
Пример #21
0
 public void RecycleItem(LoopGridViewItem item)
 {
     item.PrevItem = null;
     item.NextItem = null;
     mTmpPooledItemList.Add(item);
 }
Пример #22
0
 private void RecycleItemReal(LoopGridViewItem item)
 {
     ((Component)item).get_gameObject().SetActive(false);
     this.mPooledItemList.Add(item);
 }