Unity中如何让Scroll View填充Vertical Layout Group剩余空间?
调整Vertical Layout Group的子物体扩展规则
在contentWrapper的Vertical Layout Group组件里,找到Child Force Expand区域:勾选Height,同时给图片子物体添加Layout Element组件(没有就新建),取消勾选Force Expand Height。这样布局系统会把contentWrapper的剩余高度全部分配给Scroll View,图片仅占用自身计算出的高度。配置Scroll View的Rect Transform
将Scroll View的Rect Transform设置为:Width=Stretch, Height=Stretch,上下左右边距全部设为0。同时确保Scroll View内部的Viewport的Rect Transform也设为Stretch宽高、边距0,让Viewport完全填满Scroll View的空间,Content则根据自身内容自适应高度以支持滚动。确认图片的布局约束
保持图片的Aspect Ratio Fitter为Width Controls Height,Rect Transform的Width设为Stretch(因父物体已开启Control Child Size Width),Height设为Preferred Size。这样图片只会依据contentWrapper的宽度计算自身高度,不会抢占Scroll View的空间。排查干扰组件
如果contentWrapper或Scroll View的Content上挂载了Content Size Fitter:contentWrapper不需要该组件(它是拉伸适配Canvas的);Scroll View的Content若用于滚动,将Vertical Fit设为Preferred Size即可,不要设为Min Size或Unconstrained,避免打乱布局。
内容的提问来源于stack exchange,提问作者Mergo

