public void OnSelect(ILoopSelectStyle loopSelectStyle) //选中 { if (m_SelecteStyle != null) { m_SelecteStyle.CancelStyle(); } var loopItem = loopSelectStyle.loopItem; m_SelecteStyle = loopSelectStyle; m_LastSelectedIndex = m_SelectedIndex; m_SelectedIndex = loopItem.index; loopSelectStyle.SelectedStyle(); if (onSelected != null) { onSelected(this.parameter, loopItem.item, m_SelectedIndex, m_LastSelectedIndex); } object para = null; if (itemParameter == null) { para = loopItem.item; } else { para = itemParameter; } if (itemCommand != null && itemCommand.CanExecute(para)) { itemCommand.Execute(para); } }
protected void RenderItem(LoopVerticalItem loopItem, int idx) { var oldRect = loopItem.rect; var oldIdx = loopItem.index; if (idx < dataLength) { var templateId = 0; if (onGetItemTemplateType != null) { templateId = onGetItemTemplateType(this.parameter, idx); } var item = OnCreateOrGetItem(idx, templateId, loopItem, content); // // item.name = string.Format("item {0} {1}", idx, templateId); // Debug.LogFormat("RenderItem oldIdx={0},item={1},loopItem={2},idx={3},templateId={4} ", oldIdx, item, loopItem.item, idx, templateId); var rent = item.GetComponent <RectTransform>(); loopItem.transform = rent; loopItem.item = item; loopItem.index = idx; } var gObj = loopItem?.item.gameObject; if (idx >= dataLength) { // CalcBounds (loopItem, oldIdx, oldRect); //删除时候需要计算bounds if (gObj) { gObj.SetActive(false); } loopItem.index = -1; return; } else if (!gObj.activeSelf) { gObj.SetActive(true); } //keep selected if (m_SelecteStyle != null) { if (m_SelecteStyle.loopItem.index == m_SelectedIndex) { m_SelecteStyle.SelectedStyle(); } else if (m_SelecteStyle.loopItem == loopItem) { m_SelecteStyle.CancelStyle(); } } AddShowList(idx); onItemRender(this.parameter, loopItem.item, loopItem.index); //填充内容 // CalcItemBound(loopItem); // CalcBounds (loopItem, oldIdx, oldRect); }
public void OnSelect(ILoopSelectStyle loopSelectStyle) //选中 { if (m_SelecteStyle != null) { m_SelecteStyle.CancelStyle(); } var loopItem = loopSelectStyle.loopItem; m_SelecteStyle = loopSelectStyle; loopSelectStyle.SelectedStyle(); int lastIdx = m_SelectedIndex; m_SelectedIndex = loopItem.index; if (onSelected != null) { onSelected(this.parameter, loopItem.item, loopItem.index, lastIdx); } if (itemCommand != null && itemCommand.CanExecute(new int[] { loopItem.index, lastIdx })) { itemCommand.Execute(new int[] { loopItem.index, lastIdx }); } }
protected void RenderItem(LoopItem loopItem, int idx) { bool dispatchOnSelectedEvent = false; var oldRect = loopItem.rect; var oldIdx = loopItem.index; loopItem.index = idx; // Debug.LogFormat ("RenderItem({1},{0})", loopItem.item, idx); if (loopItem.item == null && onGetItem == null) { var trans = itemSource.GetComponent <RectTransform>(); var item = GameObject.Instantiate(itemSource, trans.position, trans.rotation, content); loopItem.item = item; loopItem.transform = item.GetComponent <RectTransform>(); if (onInstantiated != null) { onInstantiated(this.parameter, loopItem.item, loopItem.index); } dispatchOnSelectedEvent = InitItemStyle(loopItem); } if (onGetItem != null) { var item = onGetItem(this.parameter, idx, loopItem.item, oldIdx, content); // var rent = item.GetComponent <RectTransform>(); if (rent.parent == null) { rent.SetParent(content); rent.rotation = Quaternion.Euler(0, 0, 0); rent.localScale = Vector3.one; Vector3 newPos = Vector3.zero; newPos.x = halfPadding; rent.anchoredPosition = newPos; } loopItem.transform = rent; loopItem.item = item; dispatchOnSelectedEvent = InitItemStyle(loopItem); } var gObj = loopItem.item.gameObject; if (idx >= dataLength) { gObj.SetActive(false); return; } else if (!gObj.activeSelf) { gObj.SetActive(true); } //keep selected if (m_SelecteStyle != null) { if (m_SelecteStyle.loopItem.index == m_SelectedIndex) { m_SelecteStyle.SelectedStyle(); } else if (m_SelecteStyle.loopItem == loopItem) { m_SelecteStyle.CancelStyle(); } } onItemRender(this.parameter, loopItem.item, loopItem.index); //填充内容 LayOut(loopItem); if (dispatchOnSelectedEvent) { OnSelect(m_SelecteStyle); } }
protected void RenderItem(LoopVerticalItem loopItem, int idx) { var oldRect = loopItem.rect; var oldIdx = loopItem.index; if (idx < dataLength) { var templateId = 0; if (onGetItemTemplateType != null) { templateId = onGetItemTemplateType(this.parameter, idx); } var item = OnCreateOrGetItem(idx, templateId, loopItem, content); // item.name = string.Format("item {0} {1}", idx, templateId); var rent = item.GetComponent <RectTransform> (); // if (rent.parent == null) { // rent.SetParent (content); // rent.rotation = Quaternion.Euler (0, 0, 0); // rent.localScale = Vector3.one; // // Vector3 newPos = Vector3.zero; // // newPos.x = halfPadding; // // rent.anchoredPosition = newPos; // } loopItem.transform = rent; loopItem.item = item; loopItem.index = idx; } var gObj = loopItem?.item.gameObject; if (idx >= dataLength) { // CalcBounds (loopItem, oldIdx, oldRect); //删除时候需要计算bounds if (gObj) { gObj.SetActive(false); } return; } else if (!gObj.activeSelf) { gObj.SetActive(true); } //keep selected if (m_SelecteStyle != null) { if (m_SelecteStyle.loopItem.index == m_SelectedIndex) { m_SelecteStyle.SelectedStyle(); } else if (m_SelecteStyle.loopItem == loopItem) { m_SelecteStyle.CancelStyle(); } } AddShowList(idx); onItemRender(this.parameter, loopItem.item, loopItem.index); //填充内容 // CalcItemBound(loopItem); // CalcBounds (loopItem, oldIdx, oldRect); }