I have a ScrollRect whose Content property is set to a HorizontalLayout container that is the parent to the list of items the user can scroll between. So it looks like this:
Do you have a background image element in the Scroller or Container? I encountered a similar problem when I disabled the image, had to enable it and put the alpha to 0.
Right, no there isn’t a function or method you can call to move the content within a ScrollRect, all the necessary bits are private / protected in the ScrollRect component.
However, the way the ScrollRect works is that it moves the transform position of the Content GameObject.
So to move / step up the Content GameObject you will need a script to alter the Content GO position, which is very simple.
However I’d also look at the ScrollRect source (In the UI Bitbucket repo) and use a similar method that it uses to ensure the Content GO stays within the bounds of the ScrollRect area.
Once you have your script, call the method in your script from the Button on click event (either in the editor or in code) and hay presto.
I did a little sample and tested it, if you need it let me know.
Necroing here but I got into a place where the ScrollRect viewport won’t scroll if I mouse-drag it. The solution was to flag the Viewport a Raycast Target. This also activated the mouse wheel scroll.