- Home /
ScrollView - How to stop infinite scrolling?
So I'm having the Unrestricted MoveType Scrollview (Only Vertical), Inside I'm having the VerticalLayoutGroup filled with buttons. But the problem is that user can scroll into infinity. I want to stop scrolling when the last button is at the bottom of the view. How do I achieve that?
How to stop infinite scrolling in scrollview ?
Answer by AndreM1 · Apr 04, 2017 at 05:27 AM
It's a little hard, not impossible, what we are going to do, is set the maximum value to the amount of buttons like this...
int buttonSize = 80;
int numberOfButtons = 4;
int mValue = buttonSize*numberOfButtons;
In a scrollview, the content need to put in this GameObject -> ScrollView>Viewport>Content. The content recttransform is changed when you scroll stuff. We can't let it's TOP value be higher than 0, so we do this:
public RectTransform cont;
void Update(){
if(cont.offsetMax.y < 0) { //It seems that is checking for less than 0, but the syntax is weird
cont.offsetMax = new Vector2(); //Sets its value back.
cont.offsetMin = new Vector2(); //Sets its value back.
}
}
Now we can't let the value be higher than the number of buttons, so we do this:
if(cont.offsetMax.y>(numberOfButtons*buttonSize)-buttonSize) { // Checks the values
cont.offsetMax = new Vector2(0,(numberOfButtons*buttonSize)-buttonSize); // Set its value back
cont.offsetMin = new Vector2(); //Depending on what values you set on your scrollview, you might want to change this, but my one didn't need it.
}
Hope this helps :)
Your answer
Follow this Question
Related Questions
GUIlayout scrollbar, Not working well... 1 Answer
ScrollWindow AutoUpdating value help :( 1 Answer
GUILayout.BeginScrollView cant seem to change where the box I create is positoned. 1 Answer
How to change thickness of ScrollBar of GUILayout ScrollView? 0 Answers
Invisible BeginScrollView thumb 0 Answers