spark.layouts

# VerticalLayout - AS3 Flex

Package | spark.layouts
Class | public class VerticalLayout
Inheritance | VerticalLayout LayoutBase OnDemandEventDispatcher Object
Subclasses | FormLayout

Language Version: | ActionScript 3.0

Product Version: | Flex 4

Runtime Versions: | Flash Player 10, AIR 1.5

The VerticalLayout class arranges the layout elements in a vertical sequence, top to bottom, with optional gaps between the elements and optional padding around the sequence of elements.

The vertical position of the elements is determined by arranging them in a vertical sequence, top to bottom, taking into account the padding before the first element and the gaps between the elements.

The horizontal position of the elements is determined by the layout's `horizontalAlign` property.

During the execution of the `measure()` method, the default size of the container is calculated by accumulating the preferred sizes of the elements, including gaps and padding. When `requestedRowCount` is set, only the space for that many elements is measured, starting from the first element.

During the execution of the `updateDisplayList()` method, the height of each element is calculated according to the following rules, listed in their respective order of precedence (element's minimum height and maximum height are always respected):

- If `variableRowHeight` is `false`, then set the element's height to the value of the `rowHeight` property.
- If the element's `percentHeight` is set, then calculate the element's height by distributing the available container height between all elements with a `percentHeight` setting. The available container height is equal to the container height minus the gaps, the padding and the space occupied by the rest of the elements. The element's `precentHeight` property is ignored when the layout is virtualized.
- Set the element's height to its preferred height.

The width of each element is calculated according to the following rules, listed in their respective order of precedence (element's minimum width and maximum width are always respected):

- If `horizontalAlign` is `"justify"`, then set the element's width to the container width.
- If `horizontalAlign` is `"contentJustify"`, then set the element's width to the maximum between the container's width and all elements' preferred width.
- If the element's `percentWidth` is set, then calculate the element's width as a percentage of the container's width.
- Set the element's width to its preferred width.

MXML Syntax Show MXML Syntax
Hide MXML Syntax

The `<s:VerticalLayout>` tag inherits all of the tag attributes of its superclass and adds the following tag attributes:

      <s:VerticalLayout
        Properties
        gap="6"
        horizontalAlign="left"
        paddingBottom="0"
        paddingLeft="0"
        paddingRight="0"
        paddingTop="0"
        requestedMaxRowCount="-1"
        requestedMinRowCount="-1"
        requestedRowCount="-1"
        rowHeight="calculated"
        variableRowHeight="true"
        verticalAlign="top"
      />

More examples

Set the layout of a Spark container
Set the padding and gap of a layout
Set the alignment of a layout
Set the row height or column width of a layout

Learn more

About Spark layouts

Public Properties
Hide Inherited Public Properties
Show Inherited Public Properties

| Property | Defined By
--- | --- | ---
|  | clipAndEnableScrolling : Boolean If true, specifies to clip the children to the boundaries of the viewport. | LayoutBase
|  | constructor : Object A reference to the class object or constructor function for a given object instance. | Object
|  | dropIndicator : DisplayObject The DisplayObject that this layout uses for the drop indicator during a drag-and-drop operation. | LayoutBase
|  | firstIndexInView : int [read-only] The index of the first layout element that is part of the layout and within the layout target's scroll rectangle, or -1 if nothing has been displayed yet. | VerticalLayout
|  | gap : int The vertical space between layout elements, in pixels. | VerticalLayout
|  | horizontalAlign : String The horizontal alignment of layout elements. | VerticalLayout
|  | horizontalScrollPosition : Number The x coordinate of the origin of the viewport in the component's coordinate system, where the default value is (0,0) corresponding to the upper-left corner of the component. | LayoutBase
|  | lastIndexInView : int [read-only] The index of the last row that's part of the layout and within the container's scroll rectangle, or -1 if nothing has been displayed yet. | VerticalLayout
|  | paddingBottom : Number Number of pixels between the container's bottom edge and the bottom edge of the last layout element. | VerticalLayout
|  | paddingLeft : Number The minimum number of pixels between the container's left edge and the left edge of the layout element. | VerticalLayout
|  | paddingRight : Number The minimum number of pixels between the container's right edge and the right edge of the layout element. | VerticalLayout
|  | paddingTop : Number Number of pixels between the container's top edge and the top edge of the first layout element. | VerticalLayout
|  | requestedMaxRowCount : int The measured height of this layout is large enough to display at most requestedMaxRowCount layout elements. | VerticalLayout
|  | requestedMinRowCount : int The measured height of this layout is large enough to display at least requestedMinRowCount layout elements. | VerticalLayout
|  | requestedRowCount : int The measured size of this layout is tall enough to display the first requestedRowCount layout elements. | VerticalLayout
|  | rowCount : int [read-only] The current number of visible elements. | VerticalLayout
|  | rowHeight : Number If variableRowHeight is false, then this property specifies the actual height of each child, in pixels. | VerticalLayout
|  | target : GroupBase The GroupBase container whose elements are measured, sized and positioned by this layout. | LayoutBase
|  | typicalLayoutElement : ILayoutElement Used by layouts when fixed row/column sizes are requested but a specific size isn't specified. | LayoutBase
|  | useVirtualLayout : Boolean A container can hold any number of children. | LayoutBase
|  | variableRowHeight : Boolean Specifies whether layout elements are allocated their preferred height. | VerticalLayout
|  | verticalAlign : String The vertical alignment of the content relative to the container's height. | VerticalLayout
|  | verticalScrollPosition : Number The y coordinate of the origin of the viewport in the component's coordinate system, where the default value is (0,0) corresponding to the upper-left corner of the component. | LayoutBase

Public Methods
Hide Inherited Public Methods
Show Inherited Public Methods

| Method | Defined By
--- | --- | ---
|  | VerticalLayout() Constructor. | VerticalLayout
|  | addEventListener(type:String, listener:Function, useCapture:Boolean = false, priority:int = 0, useWeakReference:Boolean = false):void Registers an event listener object with an EventDispatcher object so that the listener receives notification of an event. | OnDemandEventDispatcher
|  | calculateDropLocation(dragEvent:DragEvent):DropLocation Calculates the drop location in the data provider of the drop target for the specified dragEvent. | LayoutBase
|  | clearVirtualLayoutCache():void When useVirtualLayout is true, this method can be used by the layout target to clear cached layout information when the target changes. | LayoutBase
|  | dispatchEvent(event:Event):Boolean Dispatches an event into the event flow. | OnDemandEventDispatcher
|  | elementAdded(index:int):void Called by the target after a layout element has been added and before the target's size and display list are validated. | LayoutBase
|  | elementRemoved(index:int):void This method must is called by the target after a layout element has been removed and before the target's size and display list are validated. | LayoutBase
|  | fractionOfElementInView(index:int):Number Returns 1.0 if the specified index is completely in view, 0.0 if it's not, or a value between 0.0 and 1.0 that represents the percentage of the if the index that is partially in view. | VerticalLayout
|  | getElementBounds(index:int):Rectangle Returns the specified element's layout bounds as a Rectangle or null if the index is invalid, the corresponding element is null, includeInLayout=false, or if this layout's target property is null. | LayoutBase
|  | getHorizontalScrollPositionDelta(navigationUnit:uint):Number Returns the change to the horizontal scroll position to handle different scrolling options. | LayoutBase
|  | getNavigationDestinationIndex(currentIndex:int, navigationUnit:uint, arrowKeysWrapFocus:Boolean):int Delegation method that determines which item to navigate to based on the current item in focus and user input in terms of NavigationUnit. | LayoutBase
|  | getScrollPositionDeltaToElement(index:int):Point Computes the verticalScrollPosition and horizontalScrollPosition deltas needed to scroll the element at the specified index into view. | LayoutBase
|  | getVerticalScrollPositionDelta(navigationUnit:uint):Number Returns the change to the vertical scroll position to handle different scrolling options. | LayoutBase
|  | hasEventListener(type:String):Boolean Checks whether the EventDispatcher object has any listeners registered for a specific type of event. | OnDemandEventDispatcher
|  | hasOwnProperty(name:String):Boolean Indicates whether an object has a specified property defined. | Object
|  | hideDropIndicator():void Hides the previously shown drop indicator, created by the showDropIndicator() method, removes it from the display list and also stops the drag scrolling. | LayoutBase
|  | isPrototypeOf(theClass:Object):Boolean Indicates whether an instance of the Object class is in the prototype chain of the object specified as the parameter. | Object
|  | measure():void Measures the target's default size based on its content, and optionally measures the target's default minimum size. | LayoutBase
|  | propertyIsEnumerable(name:String):Boolean Indicates whether the specified property exists and is enumerable. | Object
|  | removeEventListener(type:String, listener:Function, useCapture:Boolean = false):void Removes a listener from the EventDispatcher object. | OnDemandEventDispatcher
|  | setPropertyIsEnumerable(name:String, isEnum:Boolean = true):void Sets the availability of a dynamic property for loop operations. | Object
|  | showDropIndicator(dropLocation:DropLocation):void Sizes, positions and parents the drop indicator based on the specified drop location. | LayoutBase
|  | toLocaleString():String Returns the string representation of this object, formatted according to locale-specific conventions. | Object
|  | toString():String Returns the string representation of the specified object. | Object
|  | updateDisplayList(width:Number, height:Number):void Sizes and positions the target's elements. | LayoutBase
|  | updateScrollRect(w:Number, h:Number):void Called by the target at the end of its updateDisplayList to have the layout update its scrollRect. | LayoutBase
|  | valueOf():Object Returns the primitive value of the specified object. | Object
|  | willTrigger(type:String):Boolean Checks whether an event listener is registered with this EventDispatcher object or any of its ancestors for the specified event type. | OnDemandEventDispatcher

Protected Methods
Hide Inherited Protected Methods
Show Inherited Protected Methods

| Method | Defined By
--- | --- | ---
|  | calculateDragScrollDelta(dropLocation:DropLocation, elapsedTime:Number):Point Calculates how much to scroll for the specified dropLocation during a drag and drop gesture. | LayoutBase
|  | calculateDropIndex(x:Number, y:Number):int Returns the index where a new item should be inserted if the user releases the mouse at the specified coordinates while completing a drag and drop gesture. | LayoutBase
|  | calculateDropIndicatorBounds(dropLocation:DropLocation):Rectangle Calculates the bounds for the drop indicator that provides visual feedback to the user of where the items will be inserted at the end of a drag and drop gesture. | LayoutBase
|  | getElementBoundsAboveScrollRect(scrollRect:Rectangle):Rectangle Returns the bounds of the first layout element that either spans or is above the scrollRect's top edge. | LayoutBase
|  | getElementBoundsBelowScrollRect(scrollRect:Rectangle):Rectangle Returns the bounds of the first layout element that either spans or is below the scrollRect's bottom edge. | LayoutBase
|  | getElementBoundsLeftOfScrollRect(scrollRect:Rectangle):Rectangle Returns the bounds of the first layout element that either spans or is to the left of the scrollRect's left edge. | LayoutBase
|  | getElementBoundsRightOfScrollRect(scrollRect:Rectangle):Rectangle Returns the bounds of the first layout element that either spans or is to the right of the scrollRect's right edge. | LayoutBase
|  | getScrollRect():Rectangle Returns the bounds of the target's scroll rectangle in layout coordinates. | LayoutBase
|  | scrollPositionChanged():void Called when the verticalScrollPosition or horizontalScrollPosition properties change. | LayoutBase

Property Detail

### firstIndexInView

property

`firstIndexInView:int` [read-only]

Language Version: | ActionScript 3.0

Product Version: | Flex 4

Runtime Versions: | Flash Player 10, AIR 1.5

The index of the first layout element that is part of the layout and within the layout target's scroll rectangle, or -1 if nothing has been displayed yet.

"Part of the layout" means that the element is non-null and that its `includeInLayout` property is `true`.

Note that the layout element may only be partially in view.

This property can be used as the source for data binding. When this property is modified, it dispatches the `indexInViewChanged` event.

Implementation
`public function get firstIndexInView():int`

Related API Elements

fractionOfElementInView()

### gap

property

`gap:int`

Language Version: | ActionScript 3.0

Product Version: | Flex 4

Runtime Versions: | Flash Player 10, AIR 1.5

The vertical space between layout elements, in pixels. Note that the gap is only applied between layout elements, so if there's just one element, the gap has no effect on the layout.

The default value is `6.`

Implementation
`public function get gap():int`
`public function set gap(value:int):void`

### horizontalAlign

property

`horizontalAlign:String`

Language Version: | ActionScript 3.0

Product Version: | Flex 4

Runtime Versions: | Flash Player 10, AIR 1.5

The horizontal alignment of layout elements. If the value is `"left"`, `"right"`, or `"center"` then the layout element is aligned relative to the container's `contentWidth` property.

If the value is `"contentJustify"`, then the layout element's actual width is set to the `contentWidth` of the container. The `contentWidth` of the container is the width of the largest layout element. If all layout elements are smaller than the width of the container, then set the width of all layout elements to the width of the container.

If the value is `"justify"` then the layout element's actual width is set to the container's width.

This property does not affect the layout's measured size.

The default value is `"left".`

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

### lastIndexInView

property

`lastIndexInView:int` [read-only]

Language Version: | ActionScript 3.0

Product Version: | Flex 4

Runtime Versions: | Flash Player 10, AIR 1.5

The index of the last row that's part of the layout and within the container's scroll rectangle, or -1 if nothing has been displayed yet.

"Part of the layout" means that the child is non-null and that its `includeInLayout` property is `true`.

Note that the row may only be partially in view.

This property can be used as the source for data binding. When this property is modified, it dispatches the `indexInViewChanged` event.

Implementation
`public function get lastIndexInView():int`

Related API Elements

firstIndexInView
fractionOfElementInView

### paddingBottom

property

`paddingBottom:Number`

Language Version: | ActionScript 3.0

Product Version: | Flex 4

Runtime Versions: | Flash Player 10, AIR 1.5

Number of pixels between the container's bottom edge and the bottom edge of the last layout element.

The default value is `0.`

Implementation
`public function get paddingBottom():Number`
`public function set paddingBottom(value:Number):void`

### paddingLeft

property

`paddingLeft:Number`

Language Version: | ActionScript 3.0

Product Version: | Flex 4

Runtime Versions: | Flash Player 10, AIR 1.5

The minimum number of pixels between the container's left edge and the left edge of the layout element.

The default value is `0.`

Implementation
`public function get paddingLeft():Number`
`public function set paddingLeft(value:Number):void`

### paddingRight

property

`paddingRight:Number`

Language Version: | ActionScript 3.0

Product Version: | Flex 4

Runtime Versions: | Flash Player 10, AIR 1.5

The minimum number of pixels between the container's right edge and the right edge of the layout element.

The default value is `0.`

Implementation
`public function get paddingRight():Number`
`public function set paddingRight(value:Number):void`

### paddingTop

property

`paddingTop:Number`

Language Version: | ActionScript 3.0

Product Version: | Flex 4

Runtime Versions: | Flash Player 10, AIR 1.5

Number of pixels between the container's top edge and the top edge of the first layout element.

The default value is `0.`

Implementation
`public function get paddingTop():Number`
`public function set paddingTop(value:Number):void`

### requestedMaxRowCount

property

`requestedMaxRowCount:int`

Language Version: | ActionScript 3.0

Product Version: | Flex 4.5

Runtime Versions: | Flash Player 10, AIR 2.5

The measured height of this layout is large enough to display at most `requestedMaxRowCount` layout elements.

If `requestedRowCount` is set, then this property has no effect.

If the actual size of the container has been explicitly set, then this property has no effect.

The default value is `-1.`

Implementation
`public function get requestedMaxRowCount():int`
`public function set requestedMaxRowCount(value:int):void`

Related API Elements

requestedRowCount
requestedMinRowCount

### requestedMinRowCount

property

`requestedMinRowCount:int`

Language Version: | ActionScript 3.0

Product Version: | Flex 4.5

Runtime Versions: | Flash Player 10, AIR 2.5

The measured height of this layout is large enough to display at least `requestedMinRowCount` layout elements.

If `requestedRowCount` is set, then this property has no effect.

If the actual size of the container has been explicitly set, then this property has no effect.

The default value is `-1.`

Implementation
`public function get requestedMinRowCount():int`
`public function set requestedMinRowCount(value:int):void`

Related API Elements

requestedRowCount
requestedMaxRowCount

### requestedRowCount

property

`requestedRowCount:int`

Language Version: | ActionScript 3.0

Product Version: | Flex 4

Runtime Versions: | Flash Player 10, AIR 1.5

The measured size of this layout is tall enough to display the first `requestedRowCount` layout elements.

If `requestedRowCount` is -1, then the measured size will be big enough for all of the layout elements.

If the actual size of the container has been explicitly set, then this property has no effect.

The default value is `-1.`

Implementation
`public function get requestedRowCount():int`
`public function set requestedRowCount(value:int):void`

Related API Elements

requestedMinRowCount
requestedMaxRowCount

### rowCount

property

`rowCount:int` [read-only]

Language Version: | ActionScript 3.0

Product Version: | Flex 4

Runtime Versions: | Flash Player 10, AIR 1.5

The current number of visible elements.

The default value is `-1.`

This property can be used as the source for data binding. When this property is modified, it dispatches the `propertyChange` event.

Implementation
`public function get rowCount():int`

### rowHeight

property

`rowHeight:Number`

Language Version: | ActionScript 3.0

Product Version: | Flex 4

Runtime Versions: | Flash Player 10, AIR 1.5

If `variableRowHeight` is `false`, then this property specifies the actual height of each child, in pixels.

If `variableRowHeight` is `true`, the default, then this property has no effect.

The default value of this property is the preferred height of the `typicalLayoutElement`.

Implementation
`public function get rowHeight():Number`
`public function set rowHeight(value:Number):void`

### variableRowHeight

property

`variableRowHeight:Boolean`

Language Version: | ActionScript 3.0

Product Version: | Flex 4

Runtime Versions: | Flash Player 10, AIR 1.5

Specifies whether layout elements are allocated their preferred height. Setting this property to `false` specifies fixed height rows.

If `false`, the actual height of each layout element is the value of `rowHeight`. Setting this property to `false` causes the layout to ignore the layout elements' `percentHeight` property.

The default value is `true.`

Implementation
`public function get variableRowHeight():Boolean`
`public function set variableRowHeight(value:Boolean):void`

### verticalAlign

property

`verticalAlign:String`

Language Version: | ActionScript 3.0

Product Version: | Flex 4

Runtime Versions: | Flash Player 10, AIR 1.5

The vertical alignment of the content relative to the container's height.

If the value is `"bottom"`, `"middle"`, or `"top"` then the layout elements are aligned relative to the container's `contentHeight` property.

This property has no effect when `clipAndEnableScrolling` is true and the `contentHeight` is greater than the container's height.

This property does not affect the layout's measured size.

The default value is `"top".`

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

### VerticalLayout

()
Constructor

`public function VerticalLayout()`

Language Version: | ActionScript 3.0

Product Version: | Flex 4

Runtime Versions: | Flash Player 10, AIR 1.5

Constructor.

Method Detail

### fractionOfElementInView

()
method

`public function fractionOfElementInView(index:int):Number`

Language Version: | ActionScript 3.0

Product Version: | Flex 4

Runtime Versions: | Flash Player 10, AIR 1.5

Returns 1.0 if the specified index is completely in view, 0.0 if it's not, or a value between 0.0 and 1.0 that represents the percentage of the if the index that is partially in view.

An index is "in view" if the corresponding non-null layout element is within the vertical limits of the container's `scrollRect` and included in the layout.

If the specified index is partially within the view, the returned value is the percentage of the corresponding layout element that's visible.

Parameters

| `index:int` — The index of the row.

Returns

| `Number` — The percentage of the specified element that's in view. Returns 0.0 if the specified index is invalid or if it corresponds to null element, or a ILayoutElement for which the `includeInLayout` property is `false`.

© 2015 Adobe Systems Incorporated. All rights reserved.
Mon Apr 10 2017, 12:28 PM -07:00