public void Refresh(List <ItemModel> items) { while (items.Count < _fragments.Count) { var lastIndex = _fragments.Count - 1; _fragments[lastIndex].gameObject.SetActive(false); _fragments.RemoveAt(lastIndex); } for (var i = 0; i < items.Count; i++) { var item = items[i]; if (i >= _fragments.Count) { _fragments.Add(_itemFragment.Create(ItemsRoot, item)); } else { _fragments[i].Refresh(item); } } }
void AddFragment(ItemModel model) { var fragment = _itemFragment.Create(ItemsRoot, model); _fragments.Add(model.Type, fragment); }