/// <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); }
/// <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(); }
/// <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; }