spark.layouts.supportClasses

# LayoutBase - AS3 Flex

Package | spark.layouts.supportClasses
Class | public class LayoutBase
Inheritance | LayoutBase OnDemandEventDispatcher Object
Subclasses | BasicLayout, ButtonBarHorizontalLayout, ConstraintLayout, HorizontalLayout, MosaicLayoutBase, TabbedViewNavigatorTabBarHorizontalLayout, TileLayout, VerticalLayout, ViewMenuLayout

Language Version: | ActionScript 3.0

Product Version: | Flex 4

Runtime Versions: | Flash Player 10, AIR 1.5

The LayoutBase class defines the base class for all Spark layouts. To create a custom layout that works with the Spark containers, you must extend `LayoutBase` or one of its subclasses.

At minimum, subclasses must implement the `updateDisplayList()` method, which positions and sizes the `target` GroupBase's elements, and the `measure()` method, which calculates the default size of the `target`.

Subclasses may override methods like `getElementBoundsAboveScrollRect()` and `getElementBoundsBelowScrollRect()` to customize the way the target behaves when it's connected to scrollbars.

Subclasses that support virtualization must respect the `useVirtualLayout` property and should only retrieve layout elements within the scrollRect (the value of `getScrollRect()`) using `getVirtualElementAt()` from within `updateDisplayList()`.

MXML Syntax Show MXML Syntax
Hide MXML Syntax

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

      <s:LayoutBase
        Properties
        clipAndEnableScrolling="false"
        dropIndicator="defined by the skin class"
        horizontalScrollPosition="0"
        target="null"
        typicalLayoutElement="null"
        useVirtualLayout="false"
        verticalScrollPosition="0"
      />

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
|  | 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
|  | 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
|  | 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
--- | --- | ---
|  | LayoutBase() Constructor. | LayoutBase
|  | 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
|  | 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

| 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

### clipAndEnableScrolling

property

`clipAndEnableScrolling:Boolean`

Language Version: | ActionScript 3.0

Product Version: | Flex 4

Runtime Versions: | Flash Player 10, AIR 1.5

If `true`, specifies to clip the children to the boundaries of the viewport. If `false`, the container children extend past the container boundaries, regardless of the size specification of the component.

The default value is `false.`

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

### dropIndicator

property

`dropIndicator:DisplayObject`

Language Version: | ActionScript 3.0

Product Version: | Flex 4

Runtime Versions: | Flash Player 10, AIR 1.5

The `DisplayObject` that this layout uses for the drop indicator during a drag-and-drop operation. Typically you do not set this property directly, but instead define a `dropIndicator` skin part in the skin class of the drop target.

The List control sets this property in response to a `DragEvent.DRAG_ENTER` event. The List initializes this property with an instance of its `dropIndicator` skin part. The List clears this property in response to a `DragEvent.DRAG_EXIT` event.

Implementation
`public function get dropIndicator():DisplayObject`
`public function set dropIndicator(value:DisplayObject):void`

### horizontalScrollPosition

property

`horizontalScrollPosition:Number`

Language Version: | ActionScript 3.0

Product Version: | Flex 4

Runtime Versions: | Flash Player 10, AIR 1.5

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. If `clipAndEnableScrolling` is `true`, setting this property typically causes the viewport to be set to:

          new Rectangle(horizontalScrollPosition, verticalScrollPosition, width, height)

Implementations of this property must be Bindable and must generate events of type `propertyChange`.

The default value is `0.`

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 horizontalScrollPosition():Number`
`public function set horizontalScrollPosition(value:Number):void`

### target

property

`target:GroupBase`

Language Version: | ActionScript 3.0

Product Version: | Flex 4

Runtime Versions: | Flash Player 10, AIR 1.5

The GroupBase container whose elements are measured, sized and positioned by this layout.

Subclasses may override the setter to perform target specific actions. For example a 3D layout may set the target's `maintainProjectionCenter` property here.

The default value is `null.`

Implementation
`public function get target():GroupBase`
`public function set target(value:GroupBase):void`

Related API Elements

updateDisplayList()
measure()

### typicalLayoutElement

property

`typicalLayoutElement:ILayoutElement`

Language Version: | ActionScript 3.0

Product Version: | Flex 4

Runtime Versions: | Flash Player 10, AIR 1.5

Used by layouts when fixed row/column sizes are requested but a specific size isn't specified. Used by virtual layouts to estimate the size of layout elements that have not been scrolled into view.

This property references a component that Flex uses to define the height of all container children, as the following example shows:

          <s:Group>
            <s:layout>
              <s:VerticalLayout variableRowHeight="false"
                  typicalLayoutElement="{b3}"/>
            </s:layout>
            <s:Button id="b1" label="Button 1"/>
            <s:Button id="b2" label="Button 2"/>
            <s:Button id="b3" label="Button 3" fontSize="36"/>
            <s:Button id="b4" label="Button 4" fontSize="24"/>
          </s:Group>

If this property has not been set and the target is non-null then the target's first layout element is cached and returned.

The default value is the target's first layout element.

The default value is `null.`

Implementation
`public function get typicalLayoutElement():ILayoutElement`
`public function set typicalLayoutElement(value:ILayoutElement):void`

Related API Elements

target
spark.layouts.VerticalLayout.variableRowHeight
spark.layouts.HorizontalLayout.variableColumnWidth

### useVirtualLayout

property

`useVirtualLayout:Boolean`

Language Version: | ActionScript 3.0

Product Version: | Flex 4

Runtime Versions: | Flash Player 10, AIR 1.5

A container can hold any number of children. However, each child requires an instance of an item renderer. If the container has many children, you might notice performance degradation as you add more children to the container.

Instead of creating an item renderer for each child, you can configure the container to use a virtual layout. With virtual layout, the container reuses item renderers so that it only creates item renderers for the currently visible children of the container. As a child is moved off the screen, possible by scrolling the container, a new child being scrolled onto the screen can reuse its item renderer.

To configure a container to use virtual layout, set the `useVirtualLayout` property to `true` for the layout associated with the container. Only DataGroup or SkinnableDataContainer with layout set to VerticalLayout, HorizontalLayout, or TileLayout supports virtual layout. Layout subclasses that do not support virtualization must prevent changing this property.

Note: The BasicLayout class throws a run-time error if you set `useVirtualLayout` to `true`.

When `true`, layouts that support virtualization must use the `target.getVirtualElementAt()` method, rather than `getElementAt()`, and must only get the elements they anticipate will be visible given the value of `getScrollRect()`.

When `true`, the layout class must be able to compute the indices of the layout elements that overlap the `scrollRect` in its `updateDisplayList()` method based exclusively on cached information, not by getting layout elements and examining their bounds.

Typically virtual layouts update their cached information in the `updateDisplayList()` method, based on the sizes and locations computed for the elements in view.

Similarly, in the `measure()` method, virtual layouts should update the target's measured size properties based on the `typicalLayoutElement` and other cached layout information, not by measuring elements.

Containers cooperate with layouts that have `useVirtualLayout` = `true` by recycling item renderers that were previously constructed, but are no longer in use. An item is considered to be no longer in use if its index is not within the range of `getVirtualElementAt()` indices requested during the container's most recent `updateDisplayList()` invocation.

The default value is `false.`

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

Related API Elements

getScrollRect()
typicalLayoutElement

### verticalScrollPosition

property

`verticalScrollPosition:Number`

Language Version: | ActionScript 3.0

Product Version: | Flex 4

Runtime Versions: | Flash Player 10, AIR 1.5

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. If `clipAndEnableScrolling` is `true`, setting this property typically causes the viewport to be set to:

          new Rectangle(horizontalScrollPosition, verticalScrollPosition, width, height)

Implementations of this property must be Bindable and must generate events of type `propertyChange`.

The default value is `0.`

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 verticalScrollPosition():Number`
`public function set verticalScrollPosition(value:Number):void`
Constructor Detail

### LayoutBase

()
Constructor

`public function LayoutBase()`

Language Version: | ActionScript 3.0

Product Version: | Flex 4

Runtime Versions: | Flash Player 10, AIR 1.5

Constructor.

Method Detail

### calculateDragScrollDelta

()
method

`protected function calculateDragScrollDelta(dropLocation:DropLocation, elapsedTime:Number):Point`

Language Version: | ActionScript 3.0

Product Version: | Flex 4

Runtime Versions: | Flash Player 10, AIR 1.5

Calculates how much to scroll for the specified `dropLocation` during a drag and drop gesture. Called by the `showDropIndicator()` method to calculate the scroll during drag-scrolling.

Parameters

| `dropLocation:DropLocation` — A valid DropLocation object previously obtained by calling the `calculateDropLocation()` method.
| `elapsedTime:Number` — The duration, in milliseconds, since the drag scrolling start.

Returns

| `Point` — How much to drag scroll, or null if drag-scrolling is not needed.

Related API Elements

spark.layouts.supportClasses.DropLocation
calculateDropIndex()
calculateDropIndicatorBounds()

### calculateDropIndex

()
method

`protected function calculateDropIndex(x:Number, y:Number):int`

Language Version: | ActionScript 3.0

Product Version: | Flex 4

Runtime Versions: | Flash Player 10, AIR 1.5

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. Called by the `calculatedDropLocation()` method.

Parameters

| `x:Number` — The x coordinate of the drag and drop gesture, in local coordinates.
| `y:Number` — The y coordinate of the drag and drop gesture, in the drop target's local coordinates.

Returns

| `int` — The drop index or -1 if the drop operation is not available at the specified coordinates.

Related API Elements

calculateDropLocation()

### calculateDropIndicatorBounds

()
method

`protected function calculateDropIndicatorBounds(dropLocation:DropLocation):Rectangle`

Language Version: | ActionScript 3.0

Product Version: | Flex 4

Runtime Versions: | Flash Player 10, AIR 1.5

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. Called by the `showDropIndicator()` method.

Parameters

| `dropLocation:DropLocation` — A valid DropLocation object previously returned by the `calculateDropLocation()` method.

Returns

| `Rectangle` — The bounds for the drop indicator or null.

Related API Elements

spark.layouts.supportClasses.DropLocation
calculateDropIndex()
calculateDragScrollDelta()

### calculateDropLocation

()
method

`public function calculateDropLocation(dragEvent:DragEvent):DropLocation`

Language Version: | ActionScript 3.0

Product Version: | Flex 4

Runtime Versions: | Flash Player 10, AIR 1.5

Calculates the drop location in the data provider of the drop target for the specified `dragEvent`.

Parameters

| `dragEvent:DragEvent` — The drag event dispatched by the DragManager.

Returns

| `DropLocation` — Returns the drop location for this event, or null if the drop operation is not available.

Related API Elements

showDropIndicator()
hideDropIndicator()

### clearVirtualLayoutCache

()
method

`public function clearVirtualLayoutCache():void`

Language Version: | ActionScript 3.0

Product Version: | Flex 4

Runtime Versions: | Flash Player 10, AIR 1.5

When `useVirtualLayout` is `true`, this method can be used by the layout target to clear cached layout information when the target changes.

For example, when a DataGroup's `dataProvider` or `itemRenderer` property changes, cached elements sizes become invalid.

When the `useVirtualLayout` property changes to `false`, this method is called automatically.

Subclasses that support `useVirtualLayout` = `true` must override this method.

### elementAdded

()
method

`public function elementAdded(index:int):void`

Language Version: | ActionScript 3.0

Product Version: | Flex 4

Runtime Versions: | Flash Player 10, AIR 1.5

Called by the target after a layout element has been added and before the target's size and display list are validated. Layouts that cache per element state, like virtual layouts, can override this method to update their cache.

If the target calls this method, it's only guaranteeing that a a layout element will exist at the specified index at `updateDisplayList()` time, for example a DataGroup with a virtual layout will call this method when an item is added to the targets `dataProvider`.

By default, this method does nothing.

Parameters

| `index:int` — The index of the element that was added.

Related API Elements

elementRemoved()

### elementRemoved

()
method

`public function elementRemoved(index:int):void`

Language Version: | ActionScript 3.0

Product Version: | Flex 4

Runtime Versions: | Flash Player 10, AIR 1.5

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. Layouts that cache per element state, like virtual layouts, can override this method to update their cache.

If the target calls this method, it's only guaranteeing that a a layout element will no longer exist at the specified index at `updateDisplayList()` time. For example, a DataGroup with a virtual layout calls this method when an item is added to the `dataProvider` property.

By default, this method does nothing.

Parameters

| `index:int` — The index of the element that was added.

Related API Elements

elementAdded()

### getElementBounds

()
method

`public function getElementBounds(index:int):Rectangle`

Language Version: | ActionScript 3.0

Product Version: | Flex 4

Runtime Versions: | Flash Player 10, AIR 1.5

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.

Layout subclasses that support `useVirtualLayout=true` must override this method to compute a potentially approximate value for elements that are not in view.

Parameters

| `index:int` — Index of the layout element.

Returns

| `Rectangle` — The specified element's layout bounds.

Related API Elements

mx.core.ILayoutElement.getLayoutBoundsX()
mx.core.ILayoutElement.getLayoutBoundsY()
mx.core.ILayoutElement.getLayoutBoundsWidth()
mx.core.ILayoutElement.getLayoutBoundsHeight()

### getElementBoundsAboveScrollRect

()
method

`protected function getElementBoundsAboveScrollRect(scrollRect:Rectangle):Rectangle`

Language Version: | ActionScript 3.0

Product Version: | Flex 4

Runtime Versions: | Flash Player 10, AIR 1.5

Returns the bounds of the first layout element that either spans or is above the scrollRect's top edge.

This is a convenience method that is used by the default implementation of the `getVerticalScrollPositionDelta()` method. Subclasses that rely on the default implementation of `getVerticalScrollPositionDelta()` should override this method to provide an accurate bounding rectangle that has valid `top` and `bottom` properties.

By default this method returns a Rectangle with width=0, height=1, whose top edge is one less than the top edge of the `scrollRect`, and left=0.

Subclasses should override this method to provide an accurate bounding rectangle that has valid `top` and `bottom` properties.

Parameters

| `scrollRect:Rectangle` — The target's scrollRect.

Returns

| `Rectangle` — The bounds of the first element that spans or is above the scrollRect's top edge.

Related API Elements

getElementBoundsLeftOfScrollRect()
getElementBoundsRightOfScrollRect()
getElementBoundsBelowScrollRect()
getVerticalScrollPositionDelta()

### getElementBoundsBelowScrollRect

()
method

`protected function getElementBoundsBelowScrollRect(scrollRect:Rectangle):Rectangle`

Language Version: | ActionScript 3.0

Product Version: | Flex 4

Runtime Versions: | Flash Player 10, AIR 1.5

Returns the bounds of the first layout element that either spans or is below the scrollRect's bottom edge.

This is a convenience method that is used by the default implementation of the `getVerticalScrollPositionDelta()` method. Subclasses that rely on the default implementation of `getVerticalScrollPositionDelta()` should override this method to provide an accurate bounding rectangle that has valid `top` and `bottom` properties.

By default this method returns a Rectangle with width=0, height=1, whose bottom edge is one more than the bottom edge of the `scrollRect`, and left=0.

Parameters

| `scrollRect:Rectangle` — The target's scrollRect.

Returns

| `Rectangle` — The bounds of the first element that spans or is below the scrollRect's bottom edge.

Related API Elements

getElementBoundsLeftOfScrollRect()
getElementBoundsRightOfScrollRect()
getElementBoundsAboveScrollRect()
getVerticalScrollPositionDelta()

### getElementBoundsLeftOfScrollRect

()
method

`protected function getElementBoundsLeftOfScrollRect(scrollRect:Rectangle):Rectangle`

Language Version: | ActionScript 3.0

Product Version: | Flex 4

Runtime Versions: | Flash Player 10, AIR 1.5

Returns the bounds of the first layout element that either spans or is to the left of the scrollRect's left edge.

This is a convenience method that is used by the default implementation of the `getHorizontalScrollPositionDelta()` method. Subclasses that rely on the default implementation of `getHorizontalScrollPositionDelta()` should override this method to provide an accurate bounding rectangle that has valid `left` and `right` properties.

By default this method returns a Rectangle with width=1, height=0, whose left edge is one less than the left edge of the `scrollRect`, and top=0.

Parameters

| `scrollRect:Rectangle` — The target's scrollRect.

Returns

| `Rectangle` — The bounds of the first element that spans or is to the left of the scrollRect's left edge.

Related API Elements

getElementBoundsRightOfScrollRect()
getElementBoundsAboveScrollRect()
getElementBoundsBelowScrollRect()
getHorizontalScrollPositionDelta()

### getElementBoundsRightOfScrollRect

()
method

`protected function getElementBoundsRightOfScrollRect(scrollRect:Rectangle):Rectangle`

Language Version: | ActionScript 3.0

Product Version: | Flex 4

Runtime Versions: | Flash Player 10, AIR 1.5

Returns the bounds of the first layout element that either spans or is to the right of the scrollRect's right edge.

This is a convenience method that is used by the default implementation of the `getHorizontalScrollPositionDelta()` method. Subclasses that rely on the default implementation of `getHorizontalScrollPositionDelta()` should override this method to provide an accurate bounding rectangle that has valid `left` and `right` properties.

By default this method returns a Rectangle with width=1, height=0, whose right edge is one more than the right edge of the `scrollRect`, and top=0.

Parameters

| `scrollRect:Rectangle` — The target's scrollRect.

Returns

| `Rectangle` — The bounds of the first element that spans or is to the right of the scrollRect's right edge.

Related API Elements

getElementBoundsLeftOfScrollRect()
getElementBoundsAboveScrollRect()
getElementBoundsBelowScrollRect()
getHorizontalScrollPositionDelta()

### getHorizontalScrollPositionDelta

()
method

`public function getHorizontalScrollPositionDelta(navigationUnit:uint):Number`

Language Version: | ActionScript 3.0

Product Version: | Flex 4

Runtime Versions: | Flash Player 10, AIR 1.5

Returns the change to the horizontal scroll position to handle different scrolling options. These options are defined by the NavigationUnit class: `END`, `HOME`, `LEFT`, `PAGE_LEFT`, `PAGE_RIGHT`, and `RIGHT`.

Parameters

| `navigationUnit:uint` — Takes the following values:

- `END` Returns scroll delta that will right justify the scrollRect to the content area.
- `HOME` Returns scroll delta that will left justify the scrollRect to the content area.
- `LEFT` Returns scroll delta that will left justify the scrollRect with the first element that spans or is to the left of the scrollRect's left edge.
- `PAGE_LEFT` Returns scroll delta that will right justify the scrollRect with the first element that spans or is to the left of the scrollRect's left edge.
- `PAGE_RIGHT` Returns scroll delta that will left justify the scrollRect with the first element that spans or is to the right of the scrollRect's right edge.
- `RIGHT` Returns scroll delta that will right justify the scrollRect with the first element that spans or is to the right of the scrollRect's right edge.

The implementation calls `getElementBoundsLeftOfScrollRect()` and `getElementBoundsRightOfScrollRect()` to determine the bounds of the elements. Layout classes usually override those methods instead of the `getHorizontalScrollPositionDelta()` method.

Returns

| `Number` — The change to the horizontal scroll position.

Related API Elements

spark.core.NavigationUnit
getElementBoundsLeftOfScrollRect()
getElementBoundsRightOfScrollRect()
getHorizontalScrollPositionDelta()

### getNavigationDestinationIndex

()
method

`public function getNavigationDestinationIndex(currentIndex:int, navigationUnit:uint, arrowKeysWrapFocus:Boolean):int`

Language Version: | ActionScript 3.0

Product Version: | Flex 4

Runtime Versions: | Flash Player 10, AIR 1.5

Delegation method that determines which item to navigate to based on the current item in focus and user input in terms of NavigationUnit. This method is used by subclasses of ListBase to handle keyboard navigation. ListBase maps user input to NavigationUnit constants.

Subclasses can override this method to compute other values that are based on the current index and key stroke encountered.

Parameters

| `currentIndex:int` — The current index of the item with focus.
| `navigationUnit:uint` — The NavigationUnit constant that determines which item to navigate to next.
| `arrowKeysWrapFocus:Boolean` — If `true`, using arrow keys to navigate within the component wraps when it hits either end.

Returns

| `int` — The index of the next item to jump to. Returns -1 when if the layout doesn't recognize the navigationUnit.

### getScrollPositionDeltaToElement

()
method

`public function getScrollPositionDeltaToElement(index:int):Point`

Language Version: | ActionScript 3.0

Product Version: | Flex 4

Runtime Versions: | Flash Player 10, AIR 1.5

Computes the `verticalScrollPosition` and `horizontalScrollPosition` deltas needed to scroll the element at the specified index into view.

This method attempts to minimize the change to `verticalScrollPosition` and `horizontalScrollPosition`.

If `clipAndEnableScrolling` is `true` and the element at the specified index is not entirely visible relative to the target's scroll rectangle, then return the delta to be added to `horizontalScrollPosition` and `verticalScrollPosition` that scrolls the element completely within the scroll rectangle's bounds.

Parameters

| `index:int` — The index of the element to be scrolled into view.

Returns

| `Point` — A Point that contains offsets to horizontalScrollPosition and verticalScrollPosition that will scroll the specified element into view, or null if no change is needed. If the specified element is partially visible and larger than the scroll rectangle, meaning it is already the only element visible, then return null. If the specified index is invalid, or target is null, then return null. If the element at the specified index is null or includeInLayout false, then return null.

Related API Elements

clipAndEnableScrolling
verticalScrollPosition
horizontalScrollPosition
updateScrollRect()

### getScrollRect

()
method

`protected function getScrollRect():Rectangle`

Language Version: | ActionScript 3.0

Product Version: | Flex 4

Runtime Versions: | Flash Player 10, AIR 1.5

Returns the bounds of the target's scroll rectangle in layout coordinates. Layout methods should not get the target's scroll rectangle directly.

Returns

| `Rectangle` — The bounds of the target's scrollRect in layout coordinates, null if target or clipAndEnableScrolling is false.

### getVerticalScrollPositionDelta

()
method

`public function getVerticalScrollPositionDelta(navigationUnit:uint):Number`

Language Version: | ActionScript 3.0

Product Version: | Flex 4

Runtime Versions: | Flash Player 10, AIR 1.5

Returns the change to the vertical scroll position to handle different scrolling options. These options are defined by the NavigationUnit class: `DOWN`, `END`, `HOME`, `PAGE_DOWN`, `PAGE_UP`, and `UP`.

Parameters

| `navigationUnit:uint` — Takes the following values:

- `DOWN` Returns scroll delta that will bottom justify the scrollRect with the first element that spans or is below the scrollRect's bottom edge.
- `END` Returns scroll delta that will bottom justify the scrollRect to the content area.
- `HOME` Returns scroll delta that will top justify the scrollRect to the content area.
- `PAGE_DOWN` Returns scroll delta that will top justify the scrollRect with the first element that spans or is below the scrollRect's bottom edge.
`PAGE_UP`
- Returns scroll delta that will bottom justify the scrollRect with the first element that spans or is above the scrollRect's top edge.
- `UP` Returns scroll delta that will top justify the scrollRect with the first element that spans or is above the scrollRect's top edge.

The implementation calls `getElementBoundsAboveScrollRect()` and `getElementBoundsBelowScrollRect()` to determine the bounds of the elements. Layout classes usually override those methods instead of the `getVerticalScrollPositionDelta()` method.

Returns

| `Number` — The change to the vertical scroll position.

Related API Elements

spark.core.NavigationUnit
getElementBoundsAboveScrollRect()
getElementBoundsBelowScrollRect()
getVerticalScrollPositionDelta()

### hideDropIndicator

()
method

`public function hideDropIndicator():void`

Language Version: | ActionScript 3.0

Product Version: | Flex 4

Runtime Versions: | Flash Player 10, AIR 1.5

Hides the previously shown drop indicator, created by the `showDropIndicator()` method, removes it from the display list and also stops the drag scrolling.

Related API Elements

showDropIndicator()
dropIndicator

### measure

()
method

`public function measure():void`

Language Version: | ActionScript 3.0

Product Version: | Flex 4

Runtime Versions: | Flash Player 10, AIR 1.5

Measures the target's default size based on its content, and optionally measures the target's default minimum size.

This is one of the methods that you must override when creating a subclass of LayoutBase. The other method is `updateDisplayList()`. You do not call these methods directly. Flex calls this method as part of a layout pass. A layout pass consists of three phases.

First, if the target's properties are invalid, the LayoutManager calls the target's `commitProperties` method.

Second, if the target's size is invalid, LayoutManager calls the target's `validateSize()` method. The target's `validateSize()` will in turn call the layout's `measure()` to calculate the target's default size unless it was explicitly specified by both target's `explicitWidth` and `explicitHeight` properties. If the default size changes, Flex will invalidate the target's display list.

Last, if the target's display list is invalid, LayoutManager calls the target's `validateDisplayList`. The target's `validateDisplayList` will in turn call the layout's `updateDisplayList` method to size and position the target's elements.

When implementing this method, you must set the target's `measuredWidth` and `measuredHeight` properties to define the target's default size. You may optionally set the `measuredMinWidth` and `measuredMinHeight` properties to define the default minimum size. A typical implementation iterates through the target's elements and uses the methods defined by the `ILayoutElement` to accumulate the preferred and/or minimum sizes of the elements and then sets the target's `measuredWidth`, `measuredHeight`, `measuredMinWidth` and `measuredMinHeight`.

Related API Elements

updateDisplayList()

### scrollPositionChanged

()
method

`protected function scrollPositionChanged():void`

Language Version: | ActionScript 3.0

Product Version: | Flex 4

Runtime Versions: | Flash Player 10, AIR 1.5

Called when the `verticalScrollPosition` or `horizontalScrollPosition` properties change.

The default implementation updates the target's `scrollRect` property by calling `updateScrollRect()`. Subclasses can override this method to compute other values that are based on the current `scrollPosition` or `scrollRect`.

Related API Elements

updateScrollRect()

### showDropIndicator

()
method

`public function showDropIndicator(dropLocation:DropLocation):void`

Language Version: | ActionScript 3.0

Product Version: | Flex 4

Runtime Versions: | Flash Player 10, AIR 1.5

Sizes, positions and parents the drop indicator based on the specified drop location. Use the `calculateDropLocation()` method to obtain the DropLocation object.

Starts/stops drag-scrolling when necessary conditions are met.

Parameters

| `dropLocation:DropLocation` — Specifies the location where to show the drop indicator. Drop location is obtained through the `computeDropLocation()` method.

Related API Elements

dropIndicator
hideDropIndicator()

### updateDisplayList

()
method

`public function updateDisplayList(width:Number, height:Number):void`

Language Version: | ActionScript 3.0

Product Version: | Flex 4

Runtime Versions: | Flash Player 10, AIR 1.5

Sizes and positions the target's elements.

This is one of the methods that you must override when creating a subclass of LayoutBase. The other method is `measure()`. You do not call these methods directly. Flex calls this method as part of a layout pass. A layout pass consists of three phases.

First, if the target's properties are invalid, the LayoutManager calls the target's `commitProperties` method.

Second, if the target's size is invalid, LayoutManager calls the target's `validateSize()` method. The target's `validateSize()` will in turn call the layout's `measure()` to calculate the target's default size unless it was explicitly specified by both target's `explicitWidth` and `explicitHeight` properties. If the default size changes, Flex will invalidate the target's display list.

Last, if the target's display list is invalid, LayoutManager calls the target's `validateDisplayList`. The target's `validateDisplayList` will in turn call the layout's `updateDisplayList` method to size and position the target's elements.

A typical implementation iterates through the target's elements and uses the methods defined by the `ILayoutElement` to position and resize the elements. Then the layout must also calculate and set the target's `contentWidth` and `contentHeight` properties to define the target's scrolling region.

Parameters

| `width:Number` — Specifies the width of the target, in pixels, in the targets's coordinates.
| `height:Number` — Specifies the height of the component, in pixels, in the target's coordinates.

Related API Elements

measure()

### updateScrollRect

()
method

`public function updateScrollRect(w:Number, h:Number):void`

Language Version: | ActionScript 3.0

Product Version: | Flex 4

Runtime Versions: | Flash Player 10, AIR 1.5

Called by the target at the end of its `updateDisplayList` to have the layout update its scrollRect.

If `clipAndEnableScrolling` is `true`, the default implementation sets the origin of the target's `scrollRect` to `verticalScrollPosition`, `horizontalScrollPosition`. It sets its size to the `width`, `height` parameters (the target's unscaled width and height).

If `clipAndEnableScrolling` is `false`, the default implementation sets the `scrollRect` to null.

Parameters

| `w:Number` — The target's width.
| `h:Number` — The target's height.

Related API Elements

target
flash.display.DisplayObject.scrollRect
updateDisplayList()

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