private void InitPool() { if (this.scrollRect.horizontal) { var columnWidth = this.contentWidth + this.contentSpacing.x; var column = Mathf.RoundToInt(Mathf.Abs(this.viewPortRect.width) / columnWidth); this.poolSize = (column + 2 * BOUND_BUFFERS) * (int)this.grouping.y; } else { var rowHeight = this.contentHeight + this.contentSpacing.y; var row = Mathf.RoundToInt(Mathf.Abs(this.viewPortRect.height) / rowHeight); this.poolSize = (row + 2 * BOUND_BUFFERS) * (int)this.grouping.x; } for (var i = 0; i < this.poolSize; i++) { var position = this.usePoolRectToHide ? Vector3.zero : _hidePosition; var obj = Instantiate(this.contentPrefab, position, Quaternion.identity) as GameObject; ViewModelBehaviour vm = obj.GetComponent <ViewModelBehaviour>(); vm.RectTransform.SetParent(this.contentRect, true); vm.RectTransform.localScale = Vector3.one; PoolModule((IModule)vm); } }
ViewModelBehaviour GetVMFromPool() { ViewModelBehaviour vm = vmsPool.Dequeue(); vm.gameObject.name = "showing"; return(vm); }
void InitPool() { if (scrollRect.horizontal) { float columnWidth = contentWidth + contentSpacing.x; int column = Mathf.RoundToInt(Mathf.Abs(viewPortRect.width) / columnWidth); poolSize = (column + 2 * BOUND_BUFFERS) * (int)grouping.y; } else { float rowHeight = contentHeight + contentSpacing.y; int row = Mathf.RoundToInt(Mathf.Abs(viewPortRect.height) / rowHeight); poolSize = (row + 2 * BOUND_BUFFERS) * (int)grouping.x; } for (int i = 0; i < poolSize; i++) { GameObject obj = Instantiate(contentPrefab, HIDE_POSITION, Quaternion.identity) as GameObject; ViewModelBehaviour vm = obj.GetComponent <ViewModelBehaviour> (); IModule module = (IModule)vm; modulesPool.Enqueue(module); vm.Recttransform.SetParent(contentRect, true); vm.Recttransform.localScale = Vector3.one; } }
public ViewModelBehaviour GetIndex(int index) { ViewModelBehaviour result = null; if (listVMs != null && listVMs.Count < index) { result = listVMs [index]; } return(result); }
void HandleOnAdd(object obj) { if (vmsPool.Count > 0) { ViewModelBehaviour vm = GetVMFromPool(); IModule module = GetModuleFromPool(); listVMs.Add(vm); listModules.Add(module); module.OriginalData = obj; } RecalculatePosition(listVMs.Count); }
void HandleOnInsert(int index, object obj) { if (vmsPool.Count > 0) { ViewModelBehaviour vm = GetVMFromPool(); IModule module = GetModuleFromPool(); listVMs.Insert(index, vm); listModules.Insert(index, module); module.OriginalData = obj; } RecalculatePosition(index); }
void InitPool() { for (int i = 0; i < poolSize; i++) { GameObject obj = Instantiate(contentPrefab, hidePosition, Quaternion.identity) as GameObject; ViewModelBehaviour vm = obj.GetComponent <ViewModelBehaviour> (); vmsPool.Enqueue(vm); IModule module = (IModule)vm; modulesPool.Enqueue(module); vm.Recttransform.SetParent(contentRect); vm.Recttransform.localScale = Vector3.one; } }
public void Clear() { this.viewModel = null; this.propertyName = null; this.PropertyInfo = null; }
void ReleaseVM(ViewModelBehaviour vm) { vmsPool.Enqueue(vm); vm.Recttransform.localPosition = hidePosition; vm.gameObject.name = "free"; }
public void Clear() { viewModel = null; propertyName = null; propertyInfo = null; }