Automatic Canvas Size not working

This is a bug. I made a report about it before.

EDIT: Have you tried clipping descendants?

5 Likes

I have tried that indeed, yes.

1 Like

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.

2 Likes

Yeah, I recommend just scripting this part until it’s fixed. Still no solution otherwise.

Are there any open source scripts that can be used to make this work?

Something as simple as a dynamic scrolling text box is impossible to do without programming knowledge thanks to this bug.
image

This may be a bit late, but I was recently experiencing your problem, to fix this set the CanvasSize to 0,0,0,0 and it works!

10 Likes

Sorry to bump in, but I think I’ve found a solution.
Try using UIListLayouts, It worked for me.
A Video

2 Likes

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.

1 Like

Had same issue, my objects had UIAspectRatioConstraint, tried deleting it and it worked

6 Likes

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

8 Likes

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)
5 Likes

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…).
image

8 Likes

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)

1 Like

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.

5 Likes

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!

I got this problem too, and I think it is to do with UIAspectRatioConstraint and that instance already has enough bugs with UI and this is another one. UI I am making uses it for boxes and automaticsize doesn’t work?

from what I know, this has only happened to me when using frames with aspect constraint inside them.

Started having this issue, is there a list of objects i have to remove to make this glitch go away i removed a bunch of things but nothing is working :frowning:

Same problem, i have to somehow autoscale it but it doesnt work :frowning:

HOW TO ACTUALLY MAKE IT WORK:

Adjust the canvasSize (y size) of the scrolling frame until the absoluteCanvasSize (y size) of the scrolling frame is set to the number of the height of each gamepass frame + the gap between each game pass frame.

so the absolute size of the scrolling frame should be = 483 x (the number of the gamepass frames) + (the gap between each gap frame)

1 Like

If you use a UIAspectRatioConstraint you might want to change the property AspectType from FitWithMaxSize to ScaleWithParentSize.

This worked for me and might work for you too.
: )

1 Like