/// <summary> /// 交换两个子项 /// </summary> /// <typeparam name="T"></typeparam> /// <param name="index1"></param> /// <param name="index2"></param> /// <param name="dataList">不为空则交换前端数据</param> public void ExchangeItem <T>(int index1, int index2, List <T> dataList = null) where T : IViewData { int tempIndex = itemList[index1].transform.GetSiblingIndex(); itemList[index1].transform.SetSiblingIndex(itemList[index2].transform.GetSiblingIndex()); itemList[index1].Index = index2; itemList[index2].transform.SetSiblingIndex(tempIndex); itemList[index2].Index = index1; ScrollViewListItem tempScrollItem = itemList[index1]; itemList[index1] = itemList[index2]; itemList[index2] = tempScrollItem; IViewData tempData = itemData[index1]; itemData[index1] = itemData[index2]; itemData[index2] = tempData; if (dataList != null && dataList.Count > 0) { T temp = dataList[index1]; dataList[index1] = dataList[index2]; dataList[index2] = temp; } }
/// <summary> /// 添加子项 /// </summary> /// <param name="itemData"></param> /// <returns></returns> private bool AddItem(IViewData itemData) { ScrollViewListItem item = new ScrollViewListItem(); item = Instantiate(prefab, content).GetComponent <ScrollViewListItem>(); item.Index = itemList.Count; item.stateChange = ItemStateChange; item.gameObject.SetActive(true); itemList.Add(item); item.LoadData(itemData); this.itemData.Add(itemData); return(true); }