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