How to use VerticalDistributedLayout with Feathers UI containers
The VerticalDistributedLayout
class may be used to position the children of a container from top to bottom, in a single column — where the total height of the container is distributed equally to the heights of each child. In other words, each child will have the same height, and their sum is equal to the total height of the container.
This layout is designed to be used with basic containers like
LayoutGroup
andScrollContainer
, which are intended purely for visual layout and do not offer built-in capabilities for rendering data from a collection. If using a container that renders a collection of data — such asListView
,TreeView
, orGridView
— consider using other layouts that are optimized for data containers by offering performance improvements like layout virtualization.
The Basics
Create a LayoutGroup
container, add it to the display list, and then add a few children to the container.
var container = new LayoutGroup();
addChild(container);
var child1 = new Button();
child1.text = "One";
container.addChild(child1);
var child2 = new Button();
child2.text = "Two";
container.addChild(child2);
var child3 = new Button();
child3.text = "Three";
container.addChild(child3);
Set the container's layout
property to a new VerticalDistributedLayout
instance.
container.layout = new VerticalDistributedLayout();
By default, the first child will be positioned in the top-left corner. Each additional child will be positioned below the previous child — creating a single, vertical column.
The following sections will introduce a number of properties that may be used to adjust the positioning and sizing of children in the layout.
Spacing
The padding is the space around the edges of the container that will contain no children. Padding may be added on each side, including top, right, bottom, and left.
layout.paddingTop = 10.0;
layout.paddingRight = 15.0;
layout.paddingBottom = 10.0;
layout.paddingLeft = 15.0;
If all four padding properties should be set to the same value, call the setPadding()
method instead.
// sets top, right, bottom and left to the same value
layout.setPadding(10.0);
The gap
refers to the space, measured in pixels, between each child in the container.
layout.gap = 5.0;