ContentSizeFitter (Component)

From Neos Wiki
Jump to navigation Jump to search
This page contains changes which are not marked for translation.


This article or section is a Stub. You can help the Neos Wiki by expanding it.


ContentSizeFitter component as seen in the Scene Inspector

Intoduction

The ContentSizeFitter resizes the slots's RectTransform to fit the minimum or preferred size of its other layout components in width or height. In effect, it kind of shrink-wraps its contents.

Note that this does not include its children slots, and only works on slots that have a layout component. For working with children, the parent with the ContentSizeFitter needs to also have a HorizontalLayout, VerticalLayout, or GridLayout component. LayoutElement is also a layout component, as is Text and Image.

Usage

Fields
Name Type Description
persistent Bool Determines whether or not this item will be saved to the server.
UpdateOrder Int Controls the order in which this component is updated
Enabled Bool Controls whether or not this component is enabled
HorizontalFit SizeFit The fit mode to use to determine the width.
VerticalFit SizeFit The fit mode to use to determine the height.

Fit modes are:

  • Disabled: Don't perform any resizing.
  • MinSize: Resize to the minimum size of the content.
  • PreferredSize: Resize to the preferred size of the content.

Behavior

The ContentSizeFitter functions as a layout controller that controls the size of its own layout component. The size is determined by the minimum or preferred sizes provided by layout components its own slot. Such layout components can be Image or Text components, VerticalLayout, HorizontalLayout, or a LayoutElement component.

Examples

In this example, we'll "shrink-wrap" the example from the VerticalLayout page. We do this by adding a ContentSizeFitter to the slot with the VerticalLayout, and setting its HorizontalFit mode to PreferredSize. Since the preferred width of the vertical layout is simply the maximum of its children's preferred widths plus the left and right spacing, the vertical layout shrinks horizontally to equal that preference:

Content Size Fitter Example 1 Horizontal Result.jpeg

If, however, we now also attempt to shrink-wrap vertically by setting the ContentSizeFitter's VerticalFit to PreferredSize, we end up with no colored boxes. This is because the children have their preferred heights set to -1, and that means the heights will simply be set to zero.

Content Size Fitter Example 1 Vertical Result with no preferred height.jpeg

We can fix this by assigning each child's LayoutElement a preferred height. For example:

Content Size Fitter Example 1 Vertical Result with preferred height.jpeg

Related Components