/// <summary> /// 刷新赋值列表 回滚到顶部 /// </summary> /// <param 列表的元素的最大个数="count"></param> /// <param 委托:进行 单个元素的赋值 = "updateItem"></param> public void InitList(int count, UpdateListItemEvent updateItem) { InitData(); //记录有多少个item m_nListCount = count; m_TempUpdateItem = updateItem; m_Content.transform.localPosition = Vector2.zero; int sideCount = count / m_GroupCount + (count % m_GroupCount > 0 ? 1 : 0); if (m_LayoutType == LayoutType.Vertical) { //计算有多少行,用于计算出总高度 m_fRectHeight = Mathf.Max(0, sideCount * m_fItemHeight + (sideCount - 1) * m_fOffsetY); } else { //计算有多少列,用于计算出总高度 m_fRectWidth = Mathf.Max(0, sideCount * m_fItemWidth + (sideCount - 1) * m_fOffsetX); } m_Content.sizeDelta = new Vector2(m_fRectWidth, m_fRectHeight); //显示item的数量 m_nShowCount = Mathf.Min(count, m_nCreateCount); m_nStartIndex = 0; m_ItemIndexDic.Clear(); for (int i = 0; i < m_nShowCount; i++) { Transform item = GetItem(i); SetItem(item, i); } //显示多少个 ShowListCount(m_Content, m_nShowCount); }
public void Refresh(int count, UpdateListItemEvent updateItem) { m_updateItem = updateItem; rowSum = count / columnCount + (count % columnCount > 0 ? 1 : 0); m_rectHeigh = Mathf.Max(0, rowSum * itemHeight + (rowSum - 1) * offsetY); if (m_spreadIndex >= 0) { m_rectHeigh += spreadHeigh; } itemParent.sizeDelta = new Vector2(m_rectWidth, m_rectHeigh); m_listCount = count; m_showCount = Mathf.Min(count, m_createCount); //显示item的数量 if (count == 0) { ShowListCount(itemParent, m_showCount); return; } dic_itemIndex.Clear(); //计算起始的终止序号 //--如果数量小于遮罩正常状态下能显示的总量 if (count <= m_createCount) { m_startIndex = 0; m_endIndex = count - 1; } else { m_startIndex = GetStartIndex(itemParent.localPosition.y); if (m_startIndex + m_createCount >= count) { m_startIndex = count - m_createCount; m_endIndex = count - 1; } else { m_endIndex = m_startIndex + m_createCount - 1; } } lastStartIndex = m_startIndex; if (m_endIndex < m_startIndex) { Debug.LogError("列表有问题!"); return; } for (int i = m_startIndex; i <= m_endIndex; i++) { m_item = GetItem(i - m_startIndex); SetItem(m_item, i); } ShowListCount(itemParent, m_showCount); if (scrollBar != null) { scrollBar.size = m_maskSize.y / m_rectHeigh; } }
/// <summary> /// 生成列表 不回滚,继续往下浏览 /// </summary> /// <param 列表的元素的最大个数="count"></param> /// <param 委托:进行 单个元素的赋值 = "updateItem"></param> public void Refresh(int count, UpdateListItemEvent updateItem) { m_TempUpdateItem = updateItem; m_Content.sizeDelta = new Vector2(m_fRectWidth, m_fRectHeight); m_nListCount = count; m_nShowCount = Mathf.Min(count, m_nCreateCount); //显示item的数量 m_ItemIndexDic.Clear(); if (count == 0) { ShowListCount(m_Content, m_nShowCount); return; } //计算起始的终止序号 //--如果数量小于遮罩正常状态下能显示的总量 if (count <= m_nCreateCount) { m_nStartIndex = 0; m_nEndIndex = count - 1; } else { if (m_LayoutType == LayoutType.Vertical) { m_nStartIndex = GetStartIndex(m_Content.localPosition.y); } else { m_nStartIndex = GetStartIndex(m_Content.localPosition.x); } if (m_nStartIndex + m_nCreateCount >= count) { m_nStartIndex = count - m_nCreateCount; m_nEndIndex = count - 1; } else { m_nEndIndex = m_nStartIndex + m_nCreateCount - 1; } } m_nLastStartIndex = m_nStartIndex; if (m_nEndIndex < m_nStartIndex) { Debug.LogError("列表有问题!"); return; } for (int i = m_nStartIndex; i <= m_nEndIndex; i++) { Transform item = GetItem(i - m_nStartIndex); SetItem(item, i); } ShowListCount(m_Content, m_nShowCount); }
/// <summary> /// 生成列表 不回滚,继续往下浏览 /// </summary> /// <param 列表的元素的最大个数="count"></param> /// <param 委托:进行 单个元素的赋值 = "updateItem"></param> public void Refresh(int count, UpdateListItemEvent updateItem) { m_listCount = count; m_updateItem = updateItem; columnSum = count / rowCount + (count % rowCount > 0 ? 1 : 0); m_rectWidth = Mathf.Max(0, columnSum * itemWidth + (columnSum - 1) * offsetX); itemParent.sizeDelta = new Vector2(m_rectWidth + 50, m_rectHeigh); m_showCount = Mathf.Min(count, m_createCount); //显示item的数量 dic_itemIndex.Clear(); if (count == 0) { ShowListCount(itemParent, m_showCount); return; } //计算起始的终止序号 //--如果数量小于遮罩正常状态下能显示的总量 if (count <= m_createCount) { m_startIndex = 0; m_endIndex = count - 1; } else { m_startIndex = GetStartIndex(itemParent.localPosition.x); if (m_startIndex + m_createCount >= count) { m_startIndex = count - m_createCount; m_endIndex = count - 1; } else { m_endIndex = m_startIndex + m_createCount - 1; } } lastStartIndex = m_startIndex; if (m_endIndex < m_startIndex) { Debug.LogError("列表有问题!"); return; } for (int i = m_startIndex; i <= m_endIndex; i++) { Transform item = GetItem(i - m_startIndex); SetItem(item, i); } ShowListCount(itemParent, m_showCount); }
/// <summary> /// 刷新赋值列表 回滚到顶部 /// </summary> /// <param 列表的元素的最大个数="count"></param> /// <param 委托:进行 单个元素的赋值 = "updateItem"></param> public void InitList(int count, UpdateListItemEvent updateItem) { m_listCount = count; //记录有多少个item m_updateItem = updateItem; itemParent.transform.localPosition = Vector2.zero; columnSum = count / rowCount + (count % rowCount > 0 ? 1 : 0); //计算有多少行,用于计算出总高度 m_rectWidth = Mathf.Max(0, columnSum * itemWidth + (columnSum - 1) * offsetX); itemParent.sizeDelta = new Vector2(m_rectWidth, m_rectHeigh); m_showCount = Mathf.Min(count, m_createCount); //显示item的数量 m_startIndex = 0; dic_itemIndex.Clear(); for (int i = 0; i < m_showCount; i++) { Transform item = GetItem(i); SetItem(item, i); } ShowListCount(itemParent, m_showCount); //显示多少个 }
public void Init(int count, UpdateListItemEvent updateItem) { m_listCount = count; //记录有多少个item m_updateItem = updateItem; itemParent.transform.localPosition = Vector2.zero; rowSum = count / columnCount + (count % columnCount > 0 ? 1 : 0); //计算有多少行,用于计算出总高度 m_rectHeigh = Mathf.Max(0, rowSum * itemHeight + (rowSum - 1) * offsetY); if (m_spreadIndex >= 0) { m_rectHeigh += spreadHeigh; } itemParent.sizeDelta = new Vector2(m_rectWidth, m_rectHeigh); m_showCount = Mathf.Min(count, m_createCount); //显示item的数量 m_startIndex = 0; dic_itemIndex.Clear(); //多选要重新清除一下,然后再设置 if (selectType == eSelectType.Multi) { m_focusList.Clear(); } for (int i = 0; i < m_showCount; i++) { Transform item = GetItem(i); SetItem(item, i); } ShowListCount(itemParent, m_showCount); //显示多少个 if (scrollBar != null) { scrollBar.size = m_maskSize.y / m_rectHeigh; } if (togSelectAll != null) { if (selectType == eSelectType.Single) { togSelectAll.gameObject.SetActive(false); } else { togSelectAll.gameObject.SetActive(count > 1); } } ToEdge(); }
public void initData(UpdateListItemEvent updateItem) { _updateItem = updateItem; }