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