Ejemplo n.º 1
0
        /// <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;
            }
        }
Ejemplo n.º 2
0
        /// <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);
        }