A simple list layout that positions items from left to right, in a single row, where every item fills the entire height of the container.

Events:

openfl.events.Event.CHANGE

Dispatched when a property of the layout changes, which triggers the container to invalidate.

Available since

1.0.0

.

Constructor

new()

Creates a new HorizontalListLayout object.

Available since

1.0.0

.

Variables

@:bindable("change")contentJustify:Bool

When contentJustify is true, the height of the items is set to either the explicit height of the container, or the maximum height of all items, whichever is larger. When false, the height of the items is set to the explicit height of the container, even if the items are measured to be larger.

Available since

1.0.0

.

@:bindable("change")gap:Float

The space, in pixels, between each two adjacent items in the layout.

If the gap is set to Math.POSITIVE_INFINITY, the items will be positioned as far apart as possible. In this case, the gap will never be smaller than minGap.

In the following example, the layout's gap is set to 20 pixels:

layout.gap = 20.0;
Available since

1.0.0

.

@:bindable("change")heightResetEnabled:Bool

Indicates if the height of items should be reset if the explicit height of the parent container is not set.

Available since

1.0.0

.

@:bindable("change")horizontalAlign:HorizontalAlign

How the content is positioned horizontally (along the x-axis) within the container. If the total width of the content is larger than the available width within the container, then the positioning of the items will always start from the left.

Note: The HorizontalAlign.JUSTIFY constant is not supported by this layout.

The following example aligns the container's content to the right:

layout.horizontalAlign = RIGHT;
Available since

1.0.0

.

See also:

@:bindable("change")minGap:Float

If the value of the gap property is Math.POSITIVE_INFINITY, meaning that the gap will fill as much space as possible and position the items as far from each other as they can go without going outside of the view port bounds, the final calculated value of the gap will not be smaller than the value of the minGap property.

In the following example, the layout's minimum gap is set to 4 pixels:

layout.minGap = 4.0;
Available since

1.0.0

.

@:bindable("change")paddingBottom:Float

The space, in pixels, between the parent container's bottom edge and its content.

In the following example, the layout's bottom padding is set to 20 pixels:

layout.paddingBottom = 20.0;
Available since

1.0.0

.

@:bindable("change")paddingLeft:Float

The space, in pixels, between the parent container's left edge and its content.

In the following example, the layout's left padding is set to 20 pixels:

layout.paddingLeft = 20.0;
Available since

1.0.0

.

@:bindable("change")paddingRight:Float

The space, in pixels, between the parent container's right edge and its content.

In the following example, the layout's right padding is set to 20 pixels:

layout.paddingRight = 20.0;
Available since

1.0.0

.

@:bindable("change")paddingTop:Float

The space, in pixels, between the parent container's top edge and its content.

In the following example, the layout's top padding is set to 20 pixels:

layout.paddingTop = 20.0;
Available since

1.0.0

.

@:bindable("change")requestedColumnCount:Null<Float>

The exact number of columns to render, if the width of the container has not been set explicitly. If null, falls back to requestedMinColumnCount and requestedMaxColumnCount.

In the following example, the layout's requested column count is set to 2 complete items:

layout.requestedColumnCount = 2.0;
Available since

1.0.0

.

@:bindable("change")requestedMaxColumnCount:Null<Float>

The maximum number of columns to render, if the width of the container has not been set explicitly. If null, the maximum number of columns is the total number of items displayed by the layout.

If requestedColumnCount is also set, this property is ignored.

In the following example, the layout's requested maximum column count is set to 5 complete items:

layout.requestedMaxColumnCount = 5.0;
Available since

1.0.0

.

@:bindable("change")requestedMinColumnCount:Null<Float>

The minimum number of columns to render, if the width of the container has not been set explicitly. If null, this property is ignored.

If requestedColumnCount is also set, this property is ignored.

In the following example, the layout's requested minimum coumn count is set to 2 complete items:

layout.requestedMinColumnCount = 2.0;
Available since

1.0.0

.

Methods

findNextKeyboardIndex(startIndex:Int, event:KeyboardEvent, wrapArrowKeys:Bool, items:Array<DisplayObject>, indicesToSkip:Array<Int>, viewPortWidth:Float, viewPortHeight:Float):Int

getNearestScrollPositionForIndex(index:Int, itemCount:Int, width:Float, height:Float, ?result:Point):Point

layout(items:Array<DisplayObject>, measurements:Measurements, ?result:LayoutBoundsResult):LayoutBoundsResult

setPadding(value:Float):Void