protected override Vector2 GetItemSize(GListItem item, float x, float y, float fx, float fy) { Vector2 real_size = new Vector2(); if (item != null) { RectTransform rt = item.RectTrans; item.SetPosition(AlignXY(rt, y, fy)); //rt.anchoredPosition = AlignXY(rt, y, fy); //item.SetLocalPosition(AlignXY(rt, y, fy)); real_size.x = rt.sizeDelta.x; real_size.y = rt.sizeDelta.y; y += real_size.y * fy; if (item.index == MainSelected) { //float dsx = SubViewTemplate.sizeDelta.x; //float dsy = SubViewTemplate.sizeDelta.y /* * rt.localScale.y*/; Vector2 size = SubViewTemplate.rect.size; SubViewTemplate.anchoredPosition = AlignXY(SubViewTemplate, y, fy); real_size.x = Mathf.Max(size.x, real_size.x); real_size.y += size.y; } } return(real_size); }
//private void DisposeItem(List<GListItem> items) //{ // if (items.Count > 0) // { // GListItem item = items[items.Count - 1]; // if (item != null) // { // if (_pool.PutIn(item)) // { // GNewUITools.SetVisible(item.RectTrans, false); // } // else // { // Destroy(item.gameObject); // } // } // items.RemoveAt(items.Count - 1); // } //} private void UpdateItem(List <GListItem> items, int pos, int index) { if (items.Count > pos) { //Debug.Log("UpdateItem " + pos + " " + index); if (items[pos] == null) { items[pos] = TryCreateItem(); } GListItem item = items[pos]; //dont want to wast time here //SetPivotAnchor(item.RectTrans, _Align); AdjustItemAnchor(item.RectTrans); item.SetPosition(Index2Pos2(index, item.RectTrans)); //item.gameObject.SetActive(id < this._DataCount); //item.SetLocalPosition(Index2Pos2(index, item.RectTrans)); item.UpdateItem(index, true); if (SingleSelect) { item.IsOn = (_SingleSelectIndex == index); } } }
//private void DisposeItem(List<GListItem> items) //{ // if (items.Count > 0) // { // GListItem item = items[items.Count - 1]; // if (item != null) // { // if (_pool.PutIn(item)) // { // GNewUITools.SetVisible(item.RectTrans, false); // } // else // { // Destroy(item.gameObject); // } // } // items.RemoveAt(items.Count - 1); // } //} private void UpdateItem(List <GListItem> items, int pos, bool is_need_init) { //Debug.Log("UpdateItem " + pos); GListItem item = null; if (items.Count > pos) { item = items[pos]; } else { item = TryCreateItem(); items.Add(item); //OnAddItem(item.gameObject, item.index); } AdjustItemAnchor(item.RectTrans); item.SetPosition(Index2Pos2(pos, item.RectTrans)); //item.RectTrans.anchoredPosition = Index2Pos2(pos, item.RectTrans); //item.SetLocalPosition(Index2Pos2(pos, item.RectTrans)); item.UpdateItem(pos, is_need_init); if (SingleSelect) { item.IsOn = (_SingleSelectIndex == pos); } }
protected virtual Vector2 GetItemSize(GListItem item, float x, float y, float fx, float fy) { Vector2 real_size = new Vector2(); if (item != null) { RectTransform rt = item.RectTrans; item.SetPosition(AlignXY(rt, y, fy)); //item.SetLocalPosition(AlignXY(rt, y, fy)); //rt.anchoredPosition = AlignXY(rt, y, fy); real_size = rt.rect.size; y += real_size.y * fy; } return(real_size); }