Unity3D ScrollView动态宽度

时间:2019-02-18 11:12:36

标签: c# unity3d

我在Canvas中有一个ScrollView,它将在运行时填充UI GameObject(面板)。因为此动态子级没有固定大小,所以我想将ScrollView调整为与子级相同的宽度。换句话说:ScrollView 应该是其子级的宽度

我认为无需编码即可实现,但我无法使其正常工作。

我已经尝试在 Content Viewport ScrollView 中添加内容大小筛选器,但这只会导致宽度为0

我的结构如下

Example

请告诉我是否需要更多信息

编辑1:

问题似乎出在GameObject Content 上。它不使用其子元素调整大小

enter image description here

1 个答案:

答案 0 :(得分:1)

应该唯一具有ContentSizeFitter的对象是滚动视图的内容(仅在您要扩展内容的轴上)。为了正常工作,最好同时具有“垂直”或“水平”布局组,并选中“子控件大小”复选框,而未选中“扩展”复选框。 剩下要做的就是确保内容对象的所有子对象都具有具有首选布局尺寸的LayoutElement。

先几次正确设置它可能有点棘手,但绝对有可能。添加组件的顺序有些重要:请确保先在子级中设置了layoutElements,然后添加布局组,只有在其正常工作后,才添加内容大小调整器。如果您以相反的方式执行此操作,则该操作可能会逃脱,因为在您梦见之前,请先将对象调整为0大小,然后再注意