Is the frames inside the scrollingframe using scale? If so, its scaling to match the size of the canvas size. Not sure why its done like that, but you need to use offset when using scrolling frames with auto canvas size.
I really wish scale would match the size of the frame, not the canvas size.
I think constraints also do scale, so it won’t fix it. I’m not sure if there is any other solution besides use scale. You can use scale in the X, but then the size can get distorted weirdly.
I’m having this same issue too. Any way to fix this yet? Only way I can activate the scrolling nature of the scrollingframe is by resizing my viewport, but that would be very annoying for the player if they were forced to resize their viewport just to make scrollingframes work.
Edit: found a solution, but it’s a strange workaround. Setting the CanvasSize.Y scale/offset (doesn’t matter which one you choose) to a number larger than the space the contents of the scrollingframe occupy automatically resizes your canvas to the correct dimensions.
Edit 2: Never mind, realised it wasn’t actually resizing it still. Will need to keep testing. This seriously needs to be fixed because it’s driving me insane.
This solution also worked for me after having the same issue. I wanted to use a resizable textLabel but ended up having to switch to a list system. The canvas would resize some but not enough for everything. Hopefully, Roblox fixes this in the future. I have spent a few hours now working on this issue.
The reason it goes past is because of padding. DO NOT set padding to anything other than 0 or it will go out of the scrolling frame. Automatic canvas size does not include the padding in determining the size which makes the frames go out of the scrolling frame. If you want to fix this I suggest you make your own script to do it
If you’re using a UIListLayout in your ScrollingFrame (not sure if it works for UIGridLayout), you can put this code in a LocalScript, inside the ScrollingFrame
local Scroller = script.Parent
Scroller.CanvasSize = UDim2.new(0, 0, 0, Scroller.UIListLayout.AbsoluteContentSize.Y)
Hi, today I stumbled upon this problem and I think I’ve found a solution. I know this is quite late, but I’m just posting this in case anyone has the same problem.
For me, this worked: Placing a frame inside the scrolling frame, with its size being {1, 0, 1, 0}. Inside the frame place the elements you would place in the scrolling frame (such as UIGridLayout, UIPadding…).
Heya, I had that issue, Remove the UIAspectRatioConstraint if there is in the frame containing the uilistlayout, Set the canvassize to 0,0,0,0 and set the autosize to Y
Hope that fixed it, (it did for me)
Posting this for anyone in the future that might have this problem:
My scrollable GUI that used a UIListLayout was scrolling, but wouldn’t show the last few items. On the UIListLayout, I set HorizontalFlex to either SpaceEvenly or SpaceAround (both worked for me and looked the exact same), and it allowed me to see both the first and last items of the list. Hopefully this might help someone having a similar issue.
The UiAspectRatioConstraint overrides the size of the canvas, keeping it a specific aspect ratio. Deleting it will solve the issue. If you still want to keep the same shape, you just need to put it in the frame parenting the scrollingframe. Sorry this is late, but I hope this helps!