public WidgetsViewport(RectTransform node, IWidgetsProvider widgetsProvider, WidgetsAlignment alignment, float spacing) { _node = node; _itemWidgetsPool = new WidgetsPool(widgetsProvider, _node); _widgets = new List <IWidget>(); _alignment = alignment; _spacing = spacing; _axis = AxisMaskDesc.WidgetsAlignmentAxis[_alignment]; _edgesLastPositions = new Dictionary <WidgetsAlignment, float>(); SetPivotAndAnchors(_node); Reset(); }
public void Init(IItemsProvider itemsProvider, IWidgetsProvider widgetsProvider) { _itemsProvider = itemsProvider; _itemsViewport = new ItemsViewport(itemsProvider); _widgetsViewport = new WidgetsViewport(_contentNode, widgetsProvider, _alignment, _spacing); Axis axis = AxisMaskDesc.WidgetsAlignmentAxis[_alignment]; _scroller = GetComponent <Scroller>(); _scroller.Init(_viewportNode, axis, _speedCoef, _inertiaCoef, _elasticityCoef); _scroller.onScroll += OnScroll; _scrollNavigation = GetComponent <ScrollNavigation>(); _scrollNavigation.Init(_itemsViewport, _widgetsViewport, axis, InitialRefreshViewport); _scrollNavigation.onScroll += OnScrollNavigation; _scrollNavigation.onScrollStarted += OnScrollNavigationStarted; _scrollNavigation.onScrollFinished += OnScrollNavigationFinished; InitialRefreshViewport(); }