private void DelItemFromPanel(int index) { int maxIndex = -1; int minIndex = int.MaxValue; for (int i = _itemList.Count; i > 0; i--) { LoopScrollItem item = _itemList[i - 1]; if (item.Index == index) { Destroy(item.gameObject); _itemList.Remove(item); } if (item.Index > maxIndex) { maxIndex = item.Index; } if (item.Index < minIndex) { minIndex = item.Index; } if (item.Index > index) { item.Index -= 1; } } if (maxIndex < DataCount - 1) { CreateItem(maxIndex); } }
//获取真实数据对应的Item public GameObject GetItem(int dataIndex_) { LoopScrollItem item_ = _itemList.Find(e => e.name == "Item_" + dataIndex_.ToString("D3")); if (item_ == null) { //Debug.LogError("scrollview error index_ = " + dataIndex_); return(null); } return(item_.gameObject); }
private void AddItemIntoPanel(int index) { for (int i = 0; i < _itemList.Count; i++) { LoopScrollItem item = _itemList[i]; if (item.Index >= index) { item.Index += 1; } } CreateItem(index); }
public void UpdateItemContent(int index_) { if (_updateItem != null) { LoopScrollItem item_ = _itemList.Find(e => e.name == "Item_" + index_.ToString("D3")); if (item_ == null) { Debug.LogError("scrollview error index_ = " + index_); return; } _updateItem(index_, item_.gameObject); } }
private void UpdateItem() { int index = GetPosIndex(); if (index <= -1) { return; } _index = index; for (int i = _itemList.Count; i > 0; i--) { LoopScrollItem item = _itemList[i - 1]; if (item.Index < index * maxPerLine || (item.Index >= (index + viewCount) * maxPerLine)) { _itemList.Remove(item); _unUsedQueue.Enqueue(item); } } for (int i = _index * maxPerLine; i < (_index + viewCount) * maxPerLine; i++) { if (i < 0 || i > _dataCount - 1) { continue; } bool isOk = false; for (int j = 0; j < _itemList.Count; ++j) { if (_itemList[j].Index == i) { isOk = true; break; } } if (isOk) { continue; } CreateItem(i); } }