/// <summary> /// Initializes a new instance of the <see cref="UIWidgets.EasyLayoutBridge"/> class. /// </summary> /// <param name="layout">Layout.</param> /// <param name="defaultItem">Default item.</param> /// <param name="updateContentSizeFitter">Update ContentSizeFitter on direction change.</param> public EasyLayoutBridge(EasyLayout.EasyLayout layout, RectTransform defaultItem, bool updateContentSizeFitter = true) { Layout = layout; DefaultItem = defaultItem; UpdateContentSizeFitter = updateContentSizeFitter; fitter = Layout.GetComponent <ContentSizeFitter>(); }
/// <summary> /// Start this instance. /// </summary> public override void Start() { if (isStartedListViewCustom) { return; } isStartedListViewCustom = true; base.Start(); 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); var topFillerObj = new GameObject("top filler"); topFillerObj.transform.SetParent(Container); topFiller = topFillerObj.AddComponent <RectTransform>(); topFiller.SetAsFirstSibling(); topFiller.localScale = Vector3.one; var bottomFillerObj = new GameObject("bottom filler"); bottomFillerObj.transform.SetParent(Container); bottomFiller = bottomFillerObj.AddComponent <RectTransform>(); bottomFiller.localScale = Vector3.one; if (CanOptimize()) { ScrollRect = scrollRect; scrollHeight = scrollRect.GetComponent <RectTransform>().rect.height; if (itemHeight == 0) { var rect = DefaultItem.GetComponent <RectTransform>(); var preffered_height = LayoutUtility.GetPreferredSize(rect, 1); itemHeight = (preffered_height <= 0) ? rect.rect.height : preffered_height; } layout = Container.GetComponent <EasyLayout.EasyLayout>(); CalculateMaxVisibleItems(); var r = scrollRect.gameObject.AddComponent <ResizeListener>(); r.OnResize.AddListener(Resize); } customItems = SortItems(customItems); UpdateView(); DefaultItem.gameObject.SetActive(false); OnSelect.AddListener(OnSelectCallback); OnDeselect.AddListener(OnDeselectCallback); }
/// <summary> /// Start this instance. /// </summary> public override void Start() { if (isStartedListView) { return; } isStartedListView = true; base.Start(); 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."); } var topFillerObj = new GameObject("top filler"); topFillerObj.transform.SetParent(Container); topFiller = topFillerObj.AddComponent <RectTransform>(); topFiller.SetAsFirstSibling(); topFiller.localScale = Vector3.one; var bottomFillerObj = new GameObject("bottom filler"); bottomFillerObj.transform.SetParent(Container); bottomFiller = bottomFillerObj.AddComponent <RectTransform>(); bottomFiller.localScale = Vector3.one; if (CanOptimize()) { ScrollRect = scrollRect; scrollHeight = scrollRect.GetComponent <RectTransform>().rect.height; itemHeight = DefaultItem.GetComponent <RectTransform>().rect.height; maxVisibleItems = (int)Math.Ceiling(scrollHeight / itemHeight) + 1; layout = Container.GetComponent <EasyLayout.EasyLayout>(); var r = scrollRect.gameObject.AddComponent <ResizeListener>(); r.OnResize.AddListener(Resize); } UpdateItems(); DefaultItem.gameObject.SetActive(false); OnSelect.AddListener(OnSelectCallback); OnDeselect.AddListener(OnDeselectCallback); }
/// <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; CalculateItemSize(); layout = Container.GetComponent <EasyLayout.EasyLayout>(); layout.Stacking = (IsHorizontal()) ? EasyLayout.Stackings.Vertical : EasyLayout.Stackings.Horizontal; 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; }
/// <summary> /// Initializes a new instance of the <see cref="UIWidgets.EasyLayoutBridge"/> class. /// </summary> /// <param name="layout">Layout.</param> /// <param name="defaultItem">Default item.</param> public EasyLayoutBridge(EasyLayout.EasyLayout layout, RectTransform defaultItem) { Layout = layout; DefaultItem = defaultItem; }
/// <summary> /// Start this instance. /// </summary> public override void Start() { if (isStartedListView) { return; } isStartedListView = true; base.Start(); base.Items = new List <ListViewItem>(); SelectedItemsCache = SelectedIndicies.ConvertAll <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."); } var topFillerObj = new GameObject("top filler"); topFillerObj.transform.SetParent(Container); topFiller = topFillerObj.AddComponent <RectTransform>(); topFiller.SetAsFirstSibling(); topFiller.localScale = Vector3.one; var bottomFillerObj = new GameObject("bottom filler"); bottomFillerObj.transform.SetParent(Container); bottomFiller = bottomFillerObj.AddComponent <RectTransform>(); bottomFiller.localScale = Vector3.one; if (CanOptimize()) { ScrollRect = scrollRect; var scrollRectTransform = scrollRect.transform as RectTransform; scrollHeight = scrollRectTransform.rect.height; scrollWidth = scrollRectTransform.rect.width; var itemRectTransform = DefaultItem.transform as RectTransform; itemHeight = itemRectTransform.rect.height; itemWidth = itemRectTransform.rect.width; layout = Container.GetComponent <EasyLayout.EasyLayout>(); CalculateMaxVisibleItems(); } DefaultItem.gameObject.SetActive(false); UpdateItems(); OnSelect.AddListener(OnSelectCallback); OnDeselect.AddListener(OnDeselectCallback); }