public virtual void Init()
    {
        scrollView.Init();
        scrollView.onCyclerIndexChange += CyclerIndexChange;
        RSNGUITools.SetActive(itemPrefab, false);

        //if (WidgetsNeedRebuild()) {
        CreateWidgets();
        //}
        StartCoroutine(InitScrollPositions());
        InitButtons();

        scrollView.draggablePanel.onDrag.Add(new EventDelegate(UpdateButtons));
    }
 //Called in awake if initInAwake. Else, you can call Setup manually.
 public void Setup()
 {
     cycler.Init();
     cycler.onCyclerIndexChange += CyclerIndexChange;
     Init();
 }