void HandleListItemPositioning(XmlLayoutListItem listItem) { if (currentListElement.listItems.Count > 0 && currentListElement.listItems.IndexOf(listItem) != 0) { var firstlistItem = currentListElement.listItems.FirstOrDefault(); if (firstlistItem != null) { var thisListItemIndex = currentListElement.listItems.IndexOf(listItem); if (thisListItemIndex == -1) { return; } var desiredSiblingIndex = firstlistItem.transform.GetSiblingIndex() + thisListItemIndex; listItem.xmlElement.rectTransform.SetSiblingIndex(desiredSiblingIndex); } } else { listItem.xmlElement.rectTransform.SetSiblingIndex(currentListElement.baseSiblingIndex); } }
private void _RemoveListItem(XmlLayoutList list, XmlLayoutListItem item) { if (item.xmlElement != null) { list.listItems.Remove(item); list.listElement.RemoveChildElement(item.xmlElement); } if (Application.isPlaying) { GameObject.Destroy(item.gameObject); } else { GameObject.DestroyImmediate(item.gameObject); } XmlLayoutTimer.AtEndOfFrame(() => { UnityEngine.UI.LayoutRebuilder.ForceRebuildLayoutImmediate(list.rectTransform); }, list); }