Example #1
0
        /// <summary>
        /// Start this instance.
        /// </summary>
        public override void Start()
        {
            if (isStartedListView)
            {
                return;
            }
            isStartedListView = true;

            base.Start();
            base.Items = new List <ListViewItem>();

            SelectedItemsCache = SelectedIndicies.Convert <int, string>(GetDataItem);

            DestroyGameObjects = false;

            if (DefaultItem == null)
            {
                throw new NullReferenceException("DefaultItem is null. Set component of type ImageAdvanced to DefaultItem.");
            }
            DefaultItem.gameObject.SetActive(true);
            if (DefaultItem.GetComponentInChildren <Text>() == null)
            {
                throw new MissingComponentException("DefaultItem don't have child with 'Text' component. Add child with 'Text' component to DefaultItem.");
            }

            if (CanOptimize())
            {
                ScrollRect = scrollRect;

                var scrollRectTransform = scrollRect.transform as RectTransform;
                scrollHeight = scrollRectTransform.rect.height;
                scrollWidth  = scrollRectTransform.rect.width;

                layout = Container.GetComponent <LayoutGroup>();
                if (layout is EasyLayout.EasyLayout)
                {
                    LayoutBridge = new EasyLayoutBridge(layout as EasyLayout.EasyLayout, DefaultItem.transform as RectTransform);
                    LayoutBridge.IsHorizontal = IsHorizontal();
                }
                else if (layout is HorizontalOrVerticalLayoutGroup)
                {
                    LayoutBridge = new StandardLayoutBridge(layout as HorizontalOrVerticalLayoutGroup, DefaultItem.transform as RectTransform);
                }

                CalculateItemSize();
                CalculateMaxVisibleItems();
            }

            DefaultItem.gameObject.SetActive(false);

            UpdateItems();

            OnSelect.AddListener(OnSelectCallback);
            OnDeselect.AddListener(OnDeselectCallback);
        }
Example #2
0
        /// <summary>
        /// This function is called when the MonoBehaviour will be destroyed.
        /// </summary>
        protected override void OnDestroy()
        {
            layout       = null;
            LayoutBridge = null;

            OnSelect.RemoveListener(OnSelectCallback);
            OnDeselect.RemoveListener(OnDeselectCallback);

            ScrollRect = null;

            RemoveCallbacks();

            base.OnDestroy();
        }
Example #3
0
        /// <summary>
        /// Start this instance.
        /// </summary>
        public override void Start()
        {
            if (isStartedListViewCustom)
            {
                return;
            }

            base.Start();
            base.Items = new List <ListViewItem>();

            SelectedItemsCache = SelectedItems;

            SetItemIndicies = false;

            DestroyGameObjects = false;

            if (DefaultItem == null)
            {
                throw new NullReferenceException(String.Format("DefaultItem is null. Set component of type {0} to DefaultItem.", typeof(TComponent).FullName));
            }
            DefaultItem.gameObject.SetActive(true);


            if (CanOptimize())
            {
                ScrollRect = scrollRect;

                var scroll_rect_transform = scrollRect.transform as RectTransform;
                scrollHeight = scroll_rect_transform.rect.height;
                scrollWidth  = scroll_rect_transform.rect.width;

                layout = Container.GetComponent <LayoutGroup>();

                if (layout is EasyLayout.EasyLayout)
                {
                    LayoutBridge = new EasyLayoutBridge(layout as EasyLayout.EasyLayout, DefaultItem.transform as RectTransform);
                    LayoutBridge.IsHorizontal = IsHorizontal();
                }
                else if (layout is HorizontalOrVerticalLayoutGroup)
                {
                    LayoutBridge = new StandardLayoutBridge(layout as HorizontalOrVerticalLayoutGroup, DefaultItem.transform as RectTransform);
                }

                CalculateItemSize();
                CalculateMaxVisibleItems();

                var r = scrollRect.gameObject.AddComponent <ResizeListener>();
                r.OnResize.AddListener(SetNeedResize);
            }

            DefaultItem.gameObject.SetActive(false);

            Direction = direction;

            UpdateItems();

            OnSelect.AddListener(OnSelectCallback);
            OnDeselect.AddListener(OnDeselectCallback);

            isStartedListViewCustom = true;
        }