| 包 | spark.layouts.supportClasses |
| 类 | public class LayoutBase |
| 继承 | LayoutBase OnDemandEventDispatcher Object |
| 子类 | BasicLayout, ButtonBarHorizontalLayout, ConstraintLayout, HorizontalLayout, MosaicLayoutBase, TabbedViewNavigatorTabBarHorizontalLayout, TileLayout, VerticalLayout, ViewMenuLayout |
| 语言版本: | ActionScript 3.0 |
| 产品版本: | Flex 4 |
| 运行时版本: | Flash Player 10, AIR 1.5 |
LayoutBase 或其子类之一。
至少,子类必须实现 updateDisplayList() 方法(定位 target GroupBase 的元素并调整这些元素的大小)和 measure() 方法(计算 target 的默认大小)。
子类可能会覆盖诸如 getElementBoundsAboveScrollRect() 和 getElementBoundsBelowScrollRect() 等方法,以自定义将目标连接到滚动条时目标行为的方式。
支持虚拟化的子类必须重视 useVirtualLayout 属性,且仅应该通过使用 getVirtualElementAt() 从 updateDisplayList() 内检索 scrollRect(getScrollRect() 的值)内的布局元素。
隐藏 MXML 语法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"
/>
| 属性 | 由以下参数定义 | ||
|---|---|---|---|
| clipAndEnableScrolling : Boolean
如果为 true,指定将子代剪切到视区的边界。 | LayoutBase | ||
![]() | constructor : Object
对类对象或给定对象实例的构造函数的引用。 | Object | |
| dropIndicator : DisplayObject
该布局在拖放操作过程中用于拖放指示符的 DisplayObject。 | LayoutBase | ||
| horizontalScrollPosition : Number
组件的坐标系中视域原点(默认值为 (0,0),与组件的左上角相对应)的 x 坐标。 | LayoutBase | ||
| target : GroupBase
此布局将测量其元素、调整其元素的大小并定位其元素的 GroupBase 容器。 | LayoutBase | ||
| typicalLayoutElement : ILayoutElement
当请求固定的行/列大小而未指定某个特定大小时,由布局所使用。 | LayoutBase | ||
| useVirtualLayout : Boolean
一个容器可包含任意数量的子项。 | LayoutBase | ||
| verticalScrollPosition : Number
组件的坐标系中视区的原点(默认值为 (0,0),与组件的左上角相对应)的 y 坐标。 | LayoutBase | ||
| 方法 | 由以下参数定义 | ||
|---|---|---|---|
构造函数。 | LayoutBase | ||
![]() | addEventListener(type:String, listener:Function, useCapture:Boolean = false, priority:int = 0, useWeakReference:Boolean = false):void
使用 EventDispatcher 对象注册事件侦听器对象,以使侦听器能够接收事件通知。 | OnDemandEventDispatcher | |
为指定的 dragEvent 在放置目标的数据提供程序中计算拖放位置。 | LayoutBase | ||
如果 useVirtualLayout 为 true,则当布局目标改变时,布局目标可以使用此方法来清除已缓存布局信息。 | LayoutBase | ||
![]() |
将事件调度到事件流中。 | OnDemandEventDispatcher | |
在已添加布局元素之后且在验证目标的大小和显示列表之前,由目标调用。 | LayoutBase | ||
必须在已删除布局元素之后且在验证目标的大小和显示列表之前,由目标调用此方法。 | LayoutBase | ||
如果索引无效、相应的元素为 null、includeInLayout=false,或者如果此布局的 target 属性为 null,则将指定元素的布局界限返回为 Rectangle 或 null。 | LayoutBase | ||
返回对水平滚动位置的更改以处理不同的滚动选项。 | LayoutBase | ||
getNavigationDestinationIndex(currentIndex:int, navigationUnit:uint, arrowKeysWrapFocus:Boolean):int
确定根据 NavigationUnit、基于当前处于焦点的项目和用户输入要导航到哪个项目的委派方法。 | LayoutBase | ||
计算所需的 verticalScrollPosition 和 horizontalScrollPosition delta,以将处于指定索引处的元素滚动到视图中。 | LayoutBase | ||
返回对垂直滚动位置的更改以处理不同的滚动选项。 | LayoutBase | ||
![]() |
检查 EventDispatcher 对象是否为特定事件类型注册了任何侦听器。 | OnDemandEventDispatcher | |
![]() |
表示对象是否已经定义了指定的属性。 | Object | |
隐藏由 showDropIndicator() 方法创建的先前显示的拖放指示符,将其从显示列表中删除,还将停止拖放滚动。 | LayoutBase | ||
![]() |
表示 Object 类的实例是否在指定为参数的对象的原型链中。 | Object | |
基于目标的内容测量其默认大小,并(可选)测量目标的默认最小大小。 | LayoutBase | ||
![]() |
表示指定的属性是否存在、是否可枚举。 | Object | |
![]() |
从 EventDispatcher 对象中删除侦听器。 | OnDemandEventDispatcher | |
![]() |
设置循环操作动态属性的可用性。 | Object | |
根据指定的拖放位置调整拖放指示符的大小、确定其位置并设置其父代。 | LayoutBase | ||
![]() |
返回此对象的字符串表示形式,其格式设置遵守区域设置特定的约定。 | Object | |
![]() |
返回指定对象的字符串表示形式。 | Object | |
调整目标的元素的大小并定位这些元素。 | LayoutBase | ||
在其 updateDisplayList 的结尾由目标调用,以使布局更新其 scrollRect。 | LayoutBase | ||
![]() |
返回指定对象的原始值。 | Object | |
![]() |
检查是否用此 EventDispatcher 对象或其任何祖代为指定事件类型注册了事件侦听器。 | OnDemandEventDispatcher | |
| 方法 | 由以下参数定义 | ||
|---|---|---|---|
计算在拖放动作中为指定 dropLocation 滚动的数量。 | LayoutBase | ||
返回在完成某个拖放动作的同时用户在指定的坐标处释放鼠标的情况下应该插入新项目的位置的索引。 | LayoutBase | ||
计算拖放指示符的边界,该指示符为用户提供关于在拖放动作结尾处将项插入的位置的可视反馈。 | LayoutBase | ||
返回跨越 scrollRect 的顶边或在其顶边之上的第一个布局元素的界限。 | LayoutBase | ||
返回跨越 scrollRect 的底边或在其底边之下的第一个布局元素的界限。 | LayoutBase | ||
返回跨越 scrollRect 的左边或在其左边左侧的第一个布局元素的界限。 | LayoutBase | ||
返回跨越 scrollRect 的右边或在其右边右侧的第一个布局元素的界限。 | LayoutBase | ||
返回布局坐标中目标的滚动矩形的界限。 | LayoutBase | ||
verticalScrollPosition 或 horizontalScrollPosition 属性更改时调用。 | LayoutBase | ||
clipAndEnableScrolling | 属性 |
dropIndicator | 属性 |
dropIndicator:DisplayObject| 语言版本: | ActionScript 3.0 |
| 产品版本: | Flex 4 |
| 运行时版本: | Flash Player 10, AIR 1.5 |
该布局在拖放操作过程中用于拖放指示符的 DisplayObject。通常不直接设置该属性,而是在放置目标的外观类中定义 dropIndicator 外观部件。
List 控件设置此属性以响应 DragEvent.DRAG_ENTER 事件。List 使用其 dropIndicator 外观部件的一个实例初始化此属性。List 清除此属性以响应 DragEvent.DRAG_EXIT 事件。
实现
public function get dropIndicator():DisplayObject public function set dropIndicator(value:DisplayObject):voidhorizontalScrollPosition | 属性 |
horizontalScrollPosition:Number| 语言版本: | ActionScript 3.0 |
| 产品版本: | Flex 4 |
| 运行时版本: | Flash Player 10, AIR 1.5 |
组件的坐标系中视域原点(默认值为 (0,0),与组件的左上角相对应)的 x 坐标。如果 clipAndEnableScrolling 为 true,则设置此属性通常会导致将视区设置为:
new Rectangle(horizontalScrollPosition, verticalScrollPosition, width, height)
此属性的实现必须为 Bindable,且必须生成类型为 propertyChange 的事件。
默认值为 0。
此属性可用作数据绑定的源。修改此属性后,将调度 propertyChange 事件。
实现
public function get horizontalScrollPosition():Number public function set horizontalScrollPosition(value:Number):voidtarget | 属性 |
target:GroupBase| 语言版本: | ActionScript 3.0 |
| 产品版本: | Flex 4 |
| 运行时版本: | Flash Player 10, AIR 1.5 |
此布局将测量其元素、调整其元素的大小并定位其元素的 GroupBase 容器。
子类可能会覆盖 setter 以执行目标特定操作。例如,3D 布局可能会在此处设置目标的 maintainProjectionCenter 属性。
默认值为 null。
实现
public function get target():GroupBase public function set target(value:GroupBase):void相关 API 元素
typicalLayoutElement | 属性 |
typicalLayoutElement:ILayoutElement| 语言版本: | ActionScript 3.0 |
| 产品版本: | Flex 4 |
| 运行时版本: | Flash Player 10, AIR 1.5 |
当请求固定的行/列大小而未指定某个特定大小时,由布局所使用。由虚拟布局所使用,以估计尚未滚动到视图中的布局元素的大小。
此属性引用 Flex 用于定义所有容器子项的高度的组件,如以下示例所示:
<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>
如果尚未设置此属性,且目标为非空,则会缓存目标的第一个布局元素并返回该元素。
默认值为目标的第一个布局元素。
默认值为 null。
实现
public function get typicalLayoutElement():ILayoutElement public function set typicalLayoutElement(value:ILayoutElement):void相关 API 元素
useVirtualLayout | 属性 |
useVirtualLayout:Boolean| 语言版本: | ActionScript 3.0 |
| 产品版本: | Flex 4 |
| 运行时版本: | Flash Player 10, AIR 1.5 |
一个容器可包含任意数量的子项。但是,每个子项需要一个项呈示器的实例。如果该容器有许多子项,则在向容器添加更多子项时,您可能会注意到性能降低。
不必为每个子项创建一个项呈示器,而可以配置容器使用一个虚拟布局。使用虚拟布局,容器会重用项呈示器,这样它仅会为容器的当前可见子项创建项呈示器。随着将子项移出屏幕(可能通过滚动容器),滚动到屏幕上的新子项可以重用其项呈示器。
若要配置容器使用虚拟布局,请为与容器关联的布局将 useVirtualLayout 属性设置为 true。只有布局设置为 VerticalLayout、HorizontalLayout 或 TileLayout 的 DataGroup 或 SkinnableDataContainer 才支持虚拟布局。不支持虚拟化的布局子类必须禁止更改此属性。
注意:如果将 useVirtualLayout 设置为 true,则 BasicLayout 类会引发运行时错误。
若为 true,则支持虚拟化的布局必须使用 target.getVirtualElementAt() 方法(而不是 getElementAt()),且必须仅获取在给定 getScrollRect() 的值的情况下它们预期将可见的元素。
设置为 true 时,该布局类必须能够专门根据缓存信息计算在其 updateDisplayList() 方法中重叠 scrollRect 的布局元素的索引,而不是通过获取布局元素并检查其边界来计算索引。
通常虚拟布局根据为视图中的元素计算的大小和位置,在 updateDisplayList() 方法中更新其缓存信息。
同样,在 measure() 方法中,虚拟布局应该根据 typicalLayoutElement 和其他缓存的布局信息(而不是通过测量元素)更新目标的测量大小属性。
通过循环使用先前构造但不再使用的项呈示器,容器与 useVirtualLayout 为 true 的布局相互合作。如果某个项目的索引不在 getVirtualElementAt() 索引(是在容器的最近 updateDisplayList() 调用中请求的)的范围内,则认为该项目不再使用。
默认值为 false。
实现
public function get useVirtualLayout():Boolean public function set useVirtualLayout(value:Boolean):void相关 API 元素
verticalScrollPosition | 属性 |
verticalScrollPosition:Number| 语言版本: | ActionScript 3.0 |
| 产品版本: | Flex 4 |
| 运行时版本: | Flash Player 10, AIR 1.5 |
组件的坐标系中视区的原点(默认值为 (0,0),与组件的左上角相对应)的 y 坐标。如果 clipAndEnableScrolling 为 true,则设置此属性通常会导致将视区设置为:
new Rectangle(horizontalScrollPosition, verticalScrollPosition, width, height)
此属性的实现必须为 Bindable,且必须生成类型为 propertyChange 的事件。
默认值为 0。
此属性可用作数据绑定的源。修改此属性后,将调度 propertyChange 事件。
实现
public function get verticalScrollPosition():Number public function set verticalScrollPosition(value:Number):voidLayoutBase | () | 构造函数 |
public function LayoutBase()| 语言版本: | ActionScript 3.0 |
| 产品版本: | Flex 4 |
| 运行时版本: | Flash Player 10, AIR 1.5 |
构造函数。
calculateDragScrollDelta | () | 方法 |
protected function calculateDragScrollDelta(dropLocation:DropLocation, elapsedTime:Number):Point| 语言版本: | ActionScript 3.0 |
| 产品版本: | Flex 4 |
| 运行时版本: | Flash Player 10, AIR 1.5 |
计算在拖放动作中为指定 dropLocation 滚动的数量。由 showDropIndicator() 方法调用以计算在拖动滚动期间滚动的数量。
参数
dropLocation:DropLocation — 通过调用 calculateDropLocation() 方法先前获得的有效 DropLocation 对象。
| |
elapsedTime:Number — 拖动滚动开始后的持续时间(以毫秒为单位)。
|
Point — 拖动滚动的数量;如果不需要拖动滚动,则为 null。
|
相关 API 元素
calculateDropIndex | () | 方法 |
protected function calculateDropIndex(x:Number, y:Number):int| 语言版本: | ActionScript 3.0 |
| 产品版本: | Flex 4 |
| 运行时版本: | Flash Player 10, AIR 1.5 |
返回在完成某个拖放动作的同时用户在指定的坐标处释放鼠标的情况下应该插入新项目的位置的索引。由 calculatedDropLocation() 方法调用。
参数
x:Number — 在本地坐标中拖放动作的 x 坐标。
| |
y:Number — 在放置目标的本地坐标中,拖放动作的 y 坐标。
|
int — 拖放索引 或 -1(如果在指定坐标处拖放操作不可用)。
|
相关 API 元素
calculateDropIndicatorBounds | () | 方法 |
protected function calculateDropIndicatorBounds(dropLocation:DropLocation):Rectangle| 语言版本: | ActionScript 3.0 |
| 产品版本: | Flex 4 |
| 运行时版本: | Flash Player 10, AIR 1.5 |
计算拖放指示符的边界,该指示符为用户提供关于在拖放动作结尾处将项插入的位置的可视反馈。由 showDropIndicator() 方法调用。
参数
dropLocation:DropLocation — 由 calculateDropLocation() 方法先前返回的有效 DropLocation 对象。
|
Rectangle — 拖放指示符的界限或 null。
|
相关 API 元素
calculateDropLocation | () | 方法 |
public function calculateDropLocation(dragEvent:DragEvent):DropLocation| 语言版本: | ActionScript 3.0 |
| 产品版本: | Flex 4 |
| 运行时版本: | Flash Player 10, AIR 1.5 |
为指定的 dragEvent 在放置目标的数据提供程序中计算拖放位置。
参数
dragEvent:DragEvent — 由 DragManager 调度的拖放事件。
|
DropLocation — 返回此事件的拖放位置;如果拖放操作不可用,则返回 null。
|
相关 API 元素
clearVirtualLayoutCache | () | 方法 |
public function clearVirtualLayoutCache():void| 语言版本: | ActionScript 3.0 |
| 产品版本: | Flex 4 |
| 运行时版本: | Flash Player 10, AIR 1.5 |
如果 useVirtualLayout 为 true,则当布局目标改变时,布局目标可以使用此方法来清除已缓存布局信息。
例如,当 DataGroup 的 dataProvider 或 itemRenderer 属性更改时,缓存的元素大小将无效。
当 useVirtualLayout 属性变为 false 时,将自动调用此方法。
支持 useVirtualLayout = true 的子类必须覆盖此方法。
elementAdded | () | 方法 |
public function elementAdded(index:int):void| 语言版本: | ActionScript 3.0 |
| 产品版本: | Flex 4 |
| 运行时版本: | Flash Player 10, AIR 1.5 |
在已添加布局元素之后且在验证目标的大小和显示列表之前,由目标调用。按元素状态缓存的布局(比如虚拟布局)可以覆盖此方法以更新其缓存。
如果目标调用此方法,则它仅保证在 updateDisplayList() 时将在指定的索引处存在一个布局元素,例如添加目标 dataProvider 项目时,虚拟布局内的 DataGroup 将调用此方法。
默认情况下,此方法不执行任何操作。
参数
index:int — 已添加的元素的索引。
|
相关 API 元素
elementRemoved | () | 方法 |
public function elementRemoved(index:int):void| 语言版本: | ActionScript 3.0 |
| 产品版本: | Flex 4 |
| 运行时版本: | Flash Player 10, AIR 1.5 |
必须在已删除布局元素之后且在验证目标的大小和显示列表之前,由目标调用此方法。按元素状态缓存的布局(比如虚拟布局)可以覆盖此方法以更新其缓存。
如果目标调用此方法,则它仅保证在 updateDisplayList() 时在指定的索引处将不再存在布局元素。例如,将项目添加到 dataProvider 属性时,具有虚拟布局的 DataGroup 会调用此方法。
默认情况下,此方法不执行任何操作。
参数
index:int — 已添加的元素的索引。
|
相关 API 元素
getElementBounds | () | 方法 |
public function getElementBounds(index:int):Rectangle| 语言版本: | ActionScript 3.0 |
| 产品版本: | Flex 4 |
| 运行时版本: | Flash Player 10, AIR 1.5 |
如果索引无效,相应的元素为 null、includeInLayout=false,或者如果此布局的 target 属性为 null,则将指定元素的布局界限返回为 Rectangle 或 null。
支持 useVirtualLayout=true 的布局子类必须覆盖此方法来计算未在视图中的元素的可能近似值。
参数
index:int — 布局元素的索引。
|
Rectangle — 指定元素的布局界限。
|
相关 API 元素
getElementBoundsAboveScrollRect | () | 方法 |
protected function getElementBoundsAboveScrollRect(scrollRect:Rectangle):Rectangle| 语言版本: | ActionScript 3.0 |
| 产品版本: | Flex 4 |
| 运行时版本: | Flash Player 10, AIR 1.5 |
返回跨越 scrollRect 的顶边或在其顶边之上的第一个布局元素的界限。
这是 getVerticalScrollPositionDelta() 方法的默认实现所用的一种简便方法。依赖于 getVerticalScrollPositionDelta() 的默认实现的子类应该覆盖此方法,以提供一个具有有效 top 和 bottom 属性的准确边界矩形。
默认情况下,此方法会返回 width=0、height=1、顶边比 scrollRect 的顶边短且 left=0 的矩形。
子类应该覆盖此方法,以提供一个具有有效 top 和 bottom 属性的准确边界矩形。
参数
scrollRect:Rectangle — 目标的 scrollRect。
|
Rectangle — 跨越 scrollRect 的顶边或在其顶边之上的第一个元素的界限。
|
相关 API 元素
getElementBoundsBelowScrollRect | () | 方法 |
protected function getElementBoundsBelowScrollRect(scrollRect:Rectangle):Rectangle| 语言版本: | ActionScript 3.0 |
| 产品版本: | Flex 4 |
| 运行时版本: | Flash Player 10, AIR 1.5 |
返回跨越 scrollRect 的底边或在其底边之下的第一个布局元素的界限。
这是 getVerticalScrollPositionDelta() 方法的默认实现所用的一种简便方法。依赖于 getVerticalScrollPositionDelta() 的默认实现的子类应该覆盖此方法,以提供一个具有有效 top 和 bottom 属性的准确边界矩形。
默认情况下,此方法会返回 width=0、height=1、底边比 scrollRect 的底边长且 left=0 的矩形。
参数
scrollRect:Rectangle — 目标的 scrollRect。
|
Rectangle — 跨越 scrollRect 的底边或在其底边之下的第一个元素的界限。
|
相关 API 元素
getElementBoundsLeftOfScrollRect | () | 方法 |
protected function getElementBoundsLeftOfScrollRect(scrollRect:Rectangle):Rectangle| 语言版本: | ActionScript 3.0 |
| 产品版本: | Flex 4 |
| 运行时版本: | Flash Player 10, AIR 1.5 |
返回跨越 scrollRect 的左边或在其左边左侧的第一个布局元素的界限。
这是 getHorizontalScrollPositionDelta() 方法的默认实现所用的一种简便方法。依赖于 getHorizontalScrollPositionDelta() 的默认实现的子类应该覆盖此方法,以提供一个具有有效 left 和 right 属性的准确边界矩形。
默认情况下,此方法会返回 width=1、height=0、左边比 scrollRect 的左边短且 top=0 的矩形。
参数
scrollRect:Rectangle — 目标的 scrollRect。
|
Rectangle — 跨越 scrollRect 的左边或在其左边左侧的第一个元素的界限。
|
相关 API 元素
getElementBoundsRightOfScrollRect | () | 方法 |
protected function getElementBoundsRightOfScrollRect(scrollRect:Rectangle):Rectangle| 语言版本: | ActionScript 3.0 |
| 产品版本: | Flex 4 |
| 运行时版本: | Flash Player 10, AIR 1.5 |
返回跨越 scrollRect 的右边或在其右边右侧的第一个布局元素的界限。
这是 getHorizontalScrollPositionDelta() 方法的默认实现所用的一种简便方法。依赖于 getHorizontalScrollPositionDelta() 的默认实现的子类应该覆盖此方法,以提供一个具有有效 left 和 right 属性的准确边界矩形。
默认情况下,此方法会返回 width=1、height=0、右边比 scrollRect 的右边长且 top=0 的矩形。
参数
scrollRect:Rectangle — 目标的 scrollRect。
|
Rectangle — 跨越 scrollRect 的右边或在其右边右侧的第一个元素的界限。
|
相关 API 元素
getHorizontalScrollPositionDelta | () | 方法 |
public function getHorizontalScrollPositionDelta(navigationUnit:uint):Number| 语言版本: | ActionScript 3.0 |
| 产品版本: | Flex 4 |
| 运行时版本: | Flash Player 10, AIR 1.5 |
返回对水平滚动位置的更改以处理不同的滚动选项。下列选项是由 NavigationUnit 类定义的:END、HOME、LEFT、PAGE_LEFT、PAGE_RIGHT 和 RIGHT。
参数
navigationUnit:uint — 采用以下值:
该实现调用 |
Number — 对水平滚动位置的更改。
|
相关 API 元素
getNavigationDestinationIndex | () | 方法 |
public function getNavigationDestinationIndex(currentIndex:int, navigationUnit:uint, arrowKeysWrapFocus:Boolean):int| 语言版本: | ActionScript 3.0 |
| 产品版本: | Flex 4 |
| 运行时版本: | Flash Player 10, AIR 1.5 |
确定根据 NavigationUnit、基于当前处于焦点的项目和用户输入要导航到哪个项目的委派方法。此方法供 ListBase 的子类使用,以处理键盘导航。ListBase 将用户输入映射到 NavigationUnit 常量。
子类可以覆盖此方法来计算基于当前索引和遇到的击键的其他值。
参数
currentIndex:int — 具有焦点的项目的当前索引。
| |
navigationUnit:uint — 确定下一步要导航到哪个项目的 NavigationUnit 常量。
| |
arrowKeysWrapFocus:Boolean — 如果为 true,则使用箭头键在组件内导航时,如果击中某一端则将折回。
|
int — 要跳到的下一个项目的索引。当布局不识别 navigationUnit 时,返回 -1。
|
getScrollPositionDeltaToElement | () | 方法 |
public function getScrollPositionDeltaToElement(index:int):Point| 语言版本: | ActionScript 3.0 |
| 产品版本: | Flex 4 |
| 运行时版本: | Flash Player 10, AIR 1.5 |
计算所需的 verticalScrollPosition 和 horizontalScrollPosition delta,以将处于指定索引处的元素滚动到视图中。
此方法试图最小化对 verticalScrollPosition 和 horizontalScrollPosition 的更改。
如果 clipAndEnableScrolling 为 true,且位于指定索引处的元素相对于目标的滚动矩形不完全可见,则返回将添加到 horizontalScrollPosition 和 verticalScrollPosition 的 delta(将在滚动矩形的界限内完全滚动元素)。
参数
index:int — 要滚动到视图中的元素的索引。
|
Point — 包含到 horizontalScrollPosition 和 verticalScrollPosition 的偏移的一个点(会将指定的元素滚动到视图中);或者如果不需要更改,则为 null。如果指定的元素部分可见且大于滚动矩形(这意味着它已经是唯一可见的元素),则返回 null。如果指定的索引无效,或目标为 null,则返回 null。如果指定索引处的元素为 null 或者 includeInLayout 为 false,则返回 null。
|
相关 API 元素
getScrollRect | () | 方法 |
getVerticalScrollPositionDelta | () | 方法 |
public function getVerticalScrollPositionDelta(navigationUnit:uint):Number| 语言版本: | ActionScript 3.0 |
| 产品版本: | Flex 4 |
| 运行时版本: | Flash Player 10, AIR 1.5 |
返回对垂直滚动位置的更改以处理不同的滚动选项。下列选项是由 NavigationUnit 类定义的:DOWN、END、HOME、PAGE_DOWN、PAGE_UP 和 UP。
参数
navigationUnit:uint — 采用以下值:
PAGE_UP该实现调用 |
Number — 对垂直滚动位置的更改。
|
相关 API 元素
hideDropIndicator | () | 方法 |
public function hideDropIndicator():void| 语言版本: | ActionScript 3.0 |
| 产品版本: | Flex 4 |
| 运行时版本: | Flash Player 10, AIR 1.5 |
隐藏由 showDropIndicator() 方法创建的先前显示的拖放指示符,将其从显示列表中删除,还将停止拖放滚动。
相关 API 元素
measure | () | 方法 |
public function measure():void| 语言版本: | ActionScript 3.0 |
| 产品版本: | Flex 4 |
| 运行时版本: | Flash Player 10, AIR 1.5 |
基于目标的内容测量其默认大小,并(可选)测量目标的默认最小大小。
这是创建 LayoutBase 的子类时必须覆盖的方法之一。另一个方法是 updateDisplayList()。您不直接调用这些方法。Flex 将此方法作为布局传递的一部分进行调用。布局传递由三个阶段组成。
首先,如果目标的属性无效,则 LayoutManager 会调用目标的 commitProperties 方法。
其次,如果目标的大小无效,则 LayoutManager 会调用目标的 validateSize() 方法。除非目标的 validateSize() 已由目标的 explicitWidth 和 explicitHeight 属性显式指定,否则它将依次调用布局的 measure() 来计算目标的默认大小。如果默认大小改变,则 Flex 将使目标的显示列表无效。
最后,如果目标的显示列表无效,则 LayoutManager 会调用目标的 validateDisplayList。目标的 validateDisplayList 将依次调用布局的 updateDisplayList 方法来调整目标的元素的大小并定位这些元素。
实现此方法时,必须设置目标的 measuredWidth 和 measuredHeight 属性以定义目标的默认大小。您可以选择设置 measuredMinWidth 和 measuredMinHeight 属性来定义默认的最小大小。典型实现循环访问目标的元素并使用由 ILayoutElement 定义的方法来累积元素的首选大小和/或最小大小,然后设置目标的 measuredWidth、measuredHeight、measuredMinWidth 和 measuredMinHeight。
相关 API 元素
scrollPositionChanged | () | 方法 |
protected function scrollPositionChanged():void| 语言版本: | ActionScript 3.0 |
| 产品版本: | Flex 4 |
| 运行时版本: | Flash Player 10, AIR 1.5 |
verticalScrollPosition 或 horizontalScrollPosition 属性更改时调用。
默认实现通过调用 updateScrollRect() 更新目标的 scrollRect 属性。子类可以覆盖此方法来计算基于当前 scrollPosition 或 scrollRect 的其他值。
相关 API 元素
showDropIndicator | () | 方法 |
public function showDropIndicator(dropLocation:DropLocation):void| 语言版本: | ActionScript 3.0 |
| 产品版本: | Flex 4 |
| 运行时版本: | Flash Player 10, AIR 1.5 |
根据指定的拖放位置调整拖放指示符的大小、确定其位置并设置其父代。使用 calculateDropLocation() 方法可获得 DropLocation 对象。
满足必要的条件时,启动/停止拖动滚动。
参数
dropLocation:DropLocation — 指定要显示拖放指示符的位置。拖放位置是通过 computeDropLocation() 方法获得的。
|
相关 API 元素
updateDisplayList | () | 方法 |
public function updateDisplayList(width:Number, height:Number):void| 语言版本: | ActionScript 3.0 |
| 产品版本: | Flex 4 |
| 运行时版本: | Flash Player 10, AIR 1.5 |
调整目标的元素的大小并定位这些元素。
这是创建 LayoutBase 的子类时必须覆盖的方法之一。另一个方法是 measure()。您不直接调用这些方法。Flex 将此方法作为布局传递的一部分进行调用。布局传递由三个阶段组成。
首先,如果目标的属性无效,则 LayoutManager 会调用目标的 commitProperties 方法。
其次,如果目标的大小无效,则 LayoutManager 会调用目标的 validateSize() 方法。除非目标的 validateSize() 已由目标的 explicitWidth 和 explicitHeight 属性显式指定,否则它将依次调用布局的 measure() 来计算目标的默认大小。如果默认大小改变,则 Flex 将使目标的显示列表无效。
最后,如果目标的显示列表无效,则 LayoutManager 会调用目标的 validateDisplayList。目标的 validateDisplayList 将依次调用布局的 updateDisplayList 方法来调整目标的元素的大小并定位这些元素。
典型实现循环访问目标的元素并使用由 ILayoutElement 定义的方法来定位这些元素并调整其大小。然后该布局还必须计算和设置目标的 contentWidth 和 contentHeight 属性来定义目标的滚动区域。
参数
width:Number — 指定目标在目标坐标中的宽度(以像素为单位)。
| |
height:Number — 指定组件在目标坐标中的高度(以像素为单位)。
|
相关 API 元素
updateScrollRect | () | 方法 |
public function updateScrollRect(w:Number, h:Number):void| 语言版本: | ActionScript 3.0 |
| 产品版本: | Flex 4 |
| 运行时版本: | Flash Player 10, AIR 1.5 |
在其 updateDisplayList 的结尾由目标调用,以使布局更新其 scrollRect。
如果 clipAndEnableScrolling 为 true,则默认的实现会将目标的 scrollRect 的原点设置为 verticalScrollPosition、horizontalScrollPosition。它会将其大小设置为 width、height 参数(目标的未缩放宽度和高度)。
如果 clipAndEnableScrolling 为 false,则默认实现会将 scrollRect 设置为 null。
参数
w:Number — 目标的宽度。
| |
h:Number — 目标的高度。
|
相关 API 元素
Tue Jun 12 2018, 11:04 AM Z
显示 MXML 语法