Packagefeathers.layout
Classpublic class HorizontalLayout
InheritanceHorizontalLayout Inheritance BaseLinearLayout Inheritance BaseVariableVirtualLayout Inheritance starling.events.EventDispatcher
Implements IVariableVirtualLayout, ITrimmedVirtualLayout

Product Version : Feathers 1.0.0

Positions items from left to right in a single row.

See also

How to use HorizontalLayout with Feathers containers


Public Properties
 PropertyDefined By
 InheritedafterVirtualizedItemCount : int
BaseLinearLayout
 InheritedbeforeVirtualizedItemCount : int
BaseLinearLayout
  distributeWidths : Boolean
Distributes the width of the view port equally to each item.
HorizontalLayout
 InheritedfirstGap : Number
The space, in pixels, between the first and second items.
BaseLinearLayout
 Inheritedgap : Number
The space, in pixels, between items.
BaseLinearLayout
 InheritedhasVariableItemDimensions : Boolean
When the layout is virtualized, and this value is true, the items may have variable dimensions.
BaseVariableVirtualLayout
  horizontalAlign : String
[override] If the total item width is less than the bounds, the positions of the items can be aligned horizontally, on the x-axis.
HorizontalLayout
 InheritedlastGap : Number
The space, in pixels, between the last and second to last items.
BaseLinearLayout
  maxColumnCount : int
The maximum number of columns to display.
HorizontalLayout
 Inheritedpadding : Number
Quickly sets all padding properties to the same value.
BaseLinearLayout
 InheritedpaddingBottom : Number
The space, in pixels, that appears on the bottom.
BaseLinearLayout
 InheritedpaddingLeft : Number
The minimum space, in pixels, to the left of the items.
BaseLinearLayout
 InheritedpaddingRight : Number
The minimum space, in pixels, to the right of the items.
BaseLinearLayout
 InheritedpaddingTop : Number
The space, in pixels, that appears on top.
BaseLinearLayout
  requestedColumnCount : int
Requests that the layout set the view port dimensions to display a specific number of columns (plus gaps and padding), if possible.
HorizontalLayout
 InheritedrequiresLayoutOnScroll : Boolean
[read-only] Determines if the container calls layout() when the scroll position changes.
BaseVariableVirtualLayout
 InheritedresetTypicalItemDimensionsOnMeasure : Boolean
If set to true, the width and height of the typicalItem will be reset to typicalItemWidth and typicalItemHeight, respectively, whenever the typical item needs to be measured.
BaseLinearLayout
  scrollPositionHorizontalAlign : String
When the scroll position is calculated for an item, an attempt will be made to align the item to this position.
HorizontalLayout
 InheritedtypicalItem : DisplayObject
Used internally by a component that supports layout virtualization, such as List, to provide a display object with dimensions that represent a "typical" item in the layout.
BaseVariableVirtualLayout
 InheritedtypicalItemHeight : Number
Used to reset the height, in pixels, of the typicalItem for measurement.
BaseLinearLayout
 InheritedtypicalItemWidth : Number
Used to reset the width, in pixels, of the typicalItem for measurement.
BaseLinearLayout
 InheriteduseVirtualLayout : Boolean
Determines if virtual layout should be used.
BaseVariableVirtualLayout
  verticalAlign : String
[override] The alignment of the items vertically, on the y-axis.
HorizontalLayout
Public Methods
 MethodDefined By
  
Constructor.
HorizontalLayout
 Inherited
addToVariableVirtualCacheAtIndex(index:int, item:DisplayObject = null):void
Inserts an item in to the cache at the specified index, pushing the old cached value at that index, and all following values, up one index.
BaseVariableVirtualLayout
  
calculateNavigationDestination(items:Vector.<DisplayObject>, index:int, keyCode:uint, bounds:LayoutBoundsResult):int
Using the current index and a key press, calculates the new index.
HorizontalLayout
  
getNearestScrollPositionForIndex(index:int, scrollX:Number, scrollY:Number, items:Vector.<DisplayObject>, x:Number, y:Number, width:Number, height:Number, result:Point = null):Point
Calculates the scroll position nearest to the current scroll position that will display the full bounds of the item within the view port.
HorizontalLayout
  
getScrollPositionForIndex(index:int, items:Vector.<DisplayObject>, x:Number, y:Number, width:Number, height:Number, result:Point = null):Point
Using the item dimensions, calculates a scroll position that will ensure that the item at a given index will be visible within the specified bounds.
HorizontalLayout
  
getVisibleIndicesAtScrollPosition(scrollX:Number, scrollY:Number, width:Number, height:Number, itemCount:int, result:Vector.<int> = null):Vector.<int>
Used internally by a component, such as List, to determines which indices are visible with the specified view port bounds and scroll position.
HorizontalLayout
  
layout(items:Vector.<DisplayObject>, viewPortBounds:ViewPortBounds = null, result:LayoutBoundsResult = null):LayoutBoundsResult
Positions (and possibly resizes) the supplied items within the optional bounds argument.
HorizontalLayout
  
measureViewPort(itemCount:int, viewPortBounds:ViewPortBounds = null, result:Point = null):Point
Used internally by a component, such as List, to measure the view port based on the typical item dimensions or cached dimensions, if available.
HorizontalLayout
 Inherited
Removes an item in to the cache at the specified index, moving the values at following indexes down by one.
BaseVariableVirtualLayout
 Inherited
Clears the cached dimensions for all virtualized indices.
BaseVariableVirtualLayout
 Inherited
resetVariableVirtualCacheAtIndex(index:int, item:DisplayObject = null):void
Clears the cached dimensions for one specific virtualized index.
BaseVariableVirtualLayout
Events
 Event Summary Defined By
 InheritedDispatched when a property of the layout changes, indicating that a redraw is probably needed.BaseVariableVirtualLayout
 InheritedDispatched when the layout would like to adjust the container's scroll position.BaseVariableVirtualLayout
Property Detail
distributeWidthsproperty
distributeWidths:Boolean

Distributes the width of the view port equally to each item. If the view port width needs to be measured, the largest item's width will be used for all items, subject to any specified minimum and maximum width values.

The default value is false.


Implementation
    public function get distributeWidths():Boolean
    public function set distributeWidths(value:Boolean):void
horizontalAlignproperty 
horizontalAlign:String[override]

If the total item width is less than the bounds, the positions of the items can be aligned horizontally, on the x-axis.

The default value is feathers.layout.HorizontalAlign.LEFT.


Implementation
    public function get horizontalAlign():String
    public function set horizontalAlign(value:String):void

See also

maxColumnCountproperty 
maxColumnCount:int

The maximum number of columns to display. If the explicit width of the view port is set or if the requestedColumnCount is set, then this value will be ignored. If the view port's minimum and/or maximum width are set, the actual number of visible columns may be adjusted to meet those requirements. Set this value to 0 to display as many columns as possible.

The default value is 0.


Implementation
    public function get maxColumnCount():int
    public function set maxColumnCount(value:int):void
requestedColumnCountproperty 
requestedColumnCount:int

Requests that the layout set the view port dimensions to display a specific number of columns (plus gaps and padding), if possible. If the explicit width of the view port is set, then this value will be ignored. If the view port's minimum and/or maximum width are set, the actual number of visible columns may be adjusted to meet those requirements. Set this value to 0 to display as many columns as possible.

The default value is 0.


Implementation
    public function get requestedColumnCount():int
    public function set requestedColumnCount(value:int):void

See also

scrollPositionHorizontalAlignproperty 
scrollPositionHorizontalAlign:String

When the scroll position is calculated for an item, an attempt will be made to align the item to this position.

The default value is feathers.layout.HorizontalAlign.CENTER.


Implementation
    public function get scrollPositionHorizontalAlign():String
    public function set scrollPositionHorizontalAlign(value:String):void

See also

verticalAlignproperty 
verticalAlign:String[override]

The alignment of the items vertically, on the y-axis.

If the verticalAlign property is set to feathers.layout.VerticalAlign.JUSTIFY, the height, minHeight, and maxHeight properties of the items may be changed, and their original values ignored by the layout. In this situation, if the height needs to be constrained, the height, minHeight, or maxHeight properties should instead be set on the parent container that is using this layout.

The default value is feathers.layout.VerticalAlign.TOP.


Implementation
    public function get verticalAlign():String
    public function set verticalAlign(value:String):void

See also

Constructor Detail
HorizontalLayout()Constructor
public function HorizontalLayout()

Constructor.

Method Detail
calculateNavigationDestination()method
public function calculateNavigationDestination(items:Vector.<DisplayObject>, index:int, keyCode:uint, bounds:LayoutBoundsResult):int

Using the current index and a key press, calculates the new index. This might be use to change a list's selectedIndex when a key is pressed.

Parameters

items:Vector.<DisplayObject>
 
index:int
 
keyCode:uint
 
bounds:LayoutBoundsResult

Returns
int
getNearestScrollPositionForIndex()method 
public function getNearestScrollPositionForIndex(index:int, scrollX:Number, scrollY:Number, items:Vector.<DisplayObject>, x:Number, y:Number, width:Number, height:Number, result:Point = null):Point

Calculates the scroll position nearest to the current scroll position that will display the full bounds of the item within the view port. If the item is already fully displayed in the view port, the current scroll position will be returned unchanged.

While the item will be displayed in the view port without being clipped in any way, it may not be placed in the most prominent position possible. To give the item a more prominent location, use getScrollPositionForIndex() instead.

This function should always be called after the layout() function. The width and height arguments are the final bounds of the view port, which may be calculated in the layout() function.

Parameters

index:int
 
scrollX:Number
 
scrollY:Number
 
items:Vector.<DisplayObject>
 
x:Number
 
y:Number
 
width:Number
 
height:Number
 
result:Point (default = null)

Returns
Point
getScrollPositionForIndex()method 
public function getScrollPositionForIndex(index:int, items:Vector.<DisplayObject>, x:Number, y:Number, width:Number, height:Number, result:Point = null):Point

Using the item dimensions, calculates a scroll position that will ensure that the item at a given index will be visible within the specified bounds.

Typically, this function is used to show the item in the most prominent way, such as centering. To scroll a minimum distance required to display the full bounds of the item in the view port, use getNearestScrollPositionForIndex() instead.

This function should always be called after the layout() function. The width and height arguments are the final bounds of the view port, which may be calculated in the layout() function.

Parameters

index:int
 
items:Vector.<DisplayObject>
 
x:Number
 
y:Number
 
width:Number
 
height:Number
 
result:Point (default = null)

Returns
Point
getVisibleIndicesAtScrollPosition()method 
public function getVisibleIndicesAtScrollPosition(scrollX:Number, scrollY:Number, width:Number, height:Number, itemCount:int, result:Vector.<int> = null):Vector.<int>

Used internally by a component, such as List, to determines which indices are visible with the specified view port bounds and scroll position. Indices that aren't returned are typically not displayed and can be replaced virtually. Uses the typical items dimensions, or cached dimensions, if available.

This function is meant to be called by the List or other component that uses the virtual layout. If you're simply creating a layout for a List or another component, do not call this function. It is meant for developers creating custom components only.

Parameters

scrollX:Number
 
scrollY:Number
 
width:Number
 
height:Number
 
itemCount:int
 
result:Vector.<int> (default = null)

Returns
Vector.<int>
layout()method 
public function layout(items:Vector.<DisplayObject>, viewPortBounds:ViewPortBounds = null, result:LayoutBoundsResult = null):LayoutBoundsResult

Positions (and possibly resizes) the supplied items within the optional bounds argument. If no bounds are specified, the layout algorithm will assume that the bounds start a 0,0 and have unbounded dimensions. Returns the actual bounds of the content, which may be different than the specified bounds.

Note: The items are not absolutely restricted to appear only within the bounds. The bounds can affect positioning, but the algorithm may very well ignore them completely.

If a layout implementation needs to access accurate width and height values from items that are of type IFeathersControl, it must call validate() manually. For performance reasons, the container that is the parent of the items will not call validate() before passing the items to a layout implementation. Meeting this requirement may be as simple as looping through the items at the beginning of layout() and validating all items that are Feathers UI controls:

const itemCount:int = items.length;
for(var i:int = 0; i < itemCount; i++)
{
    var item:IFeathersControl = items[i] as IFeathersControl;
    if(item)
    {
        item.validate();
    }
}

Parameters

items:Vector.<DisplayObject>
 
viewPortBounds:ViewPortBounds (default = null)
 
result:LayoutBoundsResult (default = null)

Returns
LayoutBoundsResult
measureViewPort()method 
public function measureViewPort(itemCount:int, viewPortBounds:ViewPortBounds = null, result:Point = null):Point

Used internally by a component, such as List, to measure the view port based on the typical item dimensions or cached dimensions, if available.

This function is meant to be called by the List or other component that uses the virtual layout. If you're simply creating a layout for a List or another component, do not call this function. It is meant for developers creating custom components only.

Parameters

itemCount:int
 
viewPortBounds:ViewPortBounds (default = null)
 
result:Point (default = null)

Returns
Point