public void RefreshItemsLayoutInEditor() { if (Application.isPlaying) { return; } RefreshMaxRowAndColumnAmount(); for (int i = 0; i < itemList.Count; i++) { ScrollItem item = itemList[i]; item.SetSize(cellSize); Vector2 itemPos = CalculateIndexItemAnchorPosition(i); item.SetAnchorPosition(itemPos); item.SetSize(cellSize); } }
public void UpdateItemsVisibility() { //hide items int itemNeedStartDataIndex; int itemNeedEndDataIndex; if (startAxis == Axis.Horizontal) { itemNeedStartDataIndex = VisibleRowStartIndex * maxColumnAmount; itemNeedEndDataIndex = VisibleRowEndIndex * maxColumnAmount; } else { itemNeedStartDataIndex = VisibleColumnStartIndex * maxRowAmount; itemNeedEndDataIndex = VisibleColumnEndIndex * maxRowAmount; } for (int i = itemList.Count - 1; i >= 0; i--) { ScrollItem item = itemList[i]; if (item.dataIndex >= dataAmount) { PutItemBackToPool(item); itemList.RemoveAt(i); continue; } if (item.dataIndex < itemNeedStartDataIndex) { PutItemBackToPool(item); itemList.RemoveAt(i); continue; } if (item.dataIndex > itemNeedEndDataIndex) { PutItemBackToPool(item); itemList.RemoveAt(i); } } //new items for (int i = itemNeedStartDataIndex; i <= itemNeedEndDataIndex; i++) { if (i < 0 || i >= dataAmount) { continue; } ScrollItem item = GetItemAtDataIndex(i); if (item == null) { item = GetItemFromPool(); itemList.Add(item); if (onItemNeedRefreshContentCallback != null) { onItemNeedRefreshContentCallback.Call(i, item.itemLuaClass); } } item.SetSize(cellSize); item.SetDataIndex(i); Vector2 itemPosition = CalculateIndexItemAnchorPosition(i); item.SetAnchorPosition(itemPosition); } }