包 | spark.layouts |
类 | public class ConstraintLayout |
继承 | ConstraintLayout LayoutBase OnDemandEventDispatcher Object |
子类 | FormItemLayout |
语言版本: | ActionScript 3.0 |
产品版本: | Flex 4.5 |
运行时版本: | Flash Player 10, AIR 1.5 |
注意:基于 Spark List 的控件(Spark List 控件及其子类,如 ButtonBar、ComboBox、DropDownList 和 TabBar)不支持 ConstraintLayout 类。不要将 ConstraintLayout 与基于 Spark List 的控件一起使用。
按元素支持的约束有 left
、right
、top
、bottom
、baseline
、percentWidth
和 percentHeight
。始终将考虑元素的最小大小和最大大小。
列和行可能已设置显式大小或内容大小(不存在显式大小)。显式大小区域将固定为其指定的大小,而内容大小区域将拉伸为合适的大小以仅容纳约束到其中的元素。如果一个元素跨过多个内容大小区域,则在内容大小区域中等分空间。
容器的测量大小是根据元素、其约束、其首选大小以及行和列的大小进行计算的。每行和每列的大小恰好足够大,能够在满足元素约束的情况下以元素的首选大小容纳约束到各行和列的所有元素。容器的测量大小足够大,能够容纳所有列和行,并能够在满足元素的约束的情况下以元素的首选大小容纳剩余的任何其它元素。
在 updateDisplayList()
方法的调用过程中,元素的大小是根据按以下优先级顺序的规则确定的(始终会考虑元素的最小大小和最大大小):
- 如果元素已设置
percentWidth
或percentHeight
,则会将其大小计算为可用大小的某个百分比,其中可用大小是区域或容器大小减去任何left
、right
、top
或bottom
约束。 - 如果元素具有 left 约束和 right 约束,则会将其宽度设置为区域或容器的宽度减去
left
和right
约束。 - 如果元素具有
top
约束和bottom
约束,则会将其高度设置为容器的高度减去top
约束和bottom
约束。 - 将元素设置为其首选宽度和/或高度。
元素的位置是根据按以下优先级顺序的规则确定的:
- 如果指定了元素的 baseline,则会在垂直方向上定位元素,以使其
baselinePosition
(通常为其第一行文本的基线)与baseline
约束对齐。 - 如果指定了元素的
top
或left
约束,则会定位元素,使元素的布局界限的左上角从容器的左上角偏移指定的值。 - 如果指定了元素的
bottom
或right
约束,则会定位元素,使元素的布局界限的右下角从容器的右下角偏移指定的值。 - 如果没有任何约束确定水平或垂直方向上的位置,则会根据元素的 x 坐标和 y 坐标定位元素。
容器的内容大小将计算为所有布局元素和约束区域右下角的坐标的最大值。
属性 | 由以下参数定义 | ||
---|---|---|---|
clipAndEnableScrolling : Boolean
如果为 true,指定将子代剪切到视区的边界。 | LayoutBase | ||
constraintColumns : Vector.<ConstraintColumn>
划分目标容器的 ConstraintColumn 实例的 Vector。 | ConstraintLayout | ||
constraintRows : Vector.<ConstraintRow>
划分目标容器的 ConstraintRow 实例的 Vector。 | ConstraintLayout | ||
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 |
方法 | 由以下参数定义 | ||
---|---|---|---|
构造函数。 | ConstraintLayout | ||
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 | ||
使用列和行的当前宽度和高度对布局目标的元素进行布局。 | ConstraintLayout | ||
measureAndPositionColumnsAndRows(constrainedWidth:Number = NaN, constrainedHeight:Number = NaN):void
在对元素进行布局之前,由 FormItemLayout 用来测量和设置新列宽和行高。 | ConstraintLayout | ||
verticalScrollPosition 或 horizontalScrollPosition 属性更改时调用。 | LayoutBase |
constraintColumns | 属性 |
constraintColumns:Vector.<ConstraintColumn>
语言版本: | ActionScript 3.0 |
产品版本: | Flex 4.5 |
运行时版本: | Flash Player 10, AIR 1.5 |
划分目标容器的 ConstraintColumn 实例的 Vector。索引为 0 的 ConstraintColumn 实例是最左侧的列;索引从左到右依次增加。
实现
public function get constraintColumns():Vector.<ConstraintColumn>
public function set constraintColumns(value:Vector.<ConstraintColumn>):void
constraintRows | 属性 |
constraintRows:Vector.<ConstraintRow>
语言版本: | ActionScript 3.0 |
产品版本: | Flex 4.5 |
运行时版本: | Flash Player 10, AIR 1.5 |
划分目标容器的 ConstraintRow 实例的 Vector。索引为 0 的 ConstraintRow 实例是最顶层的列;索引从上到下依次增加。
实现
public function get constraintRows():Vector.<ConstraintRow>
public function set constraintRows(value:Vector.<ConstraintRow>):void
ConstraintLayout | () | 构造函数 |
public function ConstraintLayout()
语言版本: | ActionScript 3.0 |
产品版本: | Flex 4.5 |
运行时版本: | Flash Player 10, AIR 1.5 |
构造函数。
layoutContent | () | 方法 |
protected function layoutContent(unscaledWidth:Number, unscaledHeight:Number):void
语言版本: | ActionScript 3.0 |
产品版本: | Flex 4.5 |
运行时版本: | Flash Player 10, AIR 1.5 |
使用列和行的当前宽度和高度对布局目标的元素进行布局。在设置了新列宽后由 FormItemLayout 用来使用这些新宽度对元素进行布局。
参数
unscaledWidth:Number — 指定组件在组件坐标中的宽度(以像素为单位),而不考虑该组件的 scaleX 属性值。
| |
unscaledHeight:Number — 指定组件在组件坐标中的高度(以像素为单位),而不考虑该组件的 scaleY 属性值。
|
measureAndPositionColumnsAndRows | () | 方法 |
protected function measureAndPositionColumnsAndRows(constrainedWidth:Number = NaN, constrainedHeight:Number = NaN):void
语言版本: | ActionScript 3.0 |
产品版本: | Flex 4.5 |
运行时版本: | Flash Player 10, AIR 1.5 |
在对元素进行布局之前,由 FormItemLayout 用来测量和设置新列宽和行高。
参数
constrainedWidth:Number (default = NaN ) — 可拉伸或收缩其百分比宽度列的列总宽度。如果为 NaN,则百分比宽度列不受限且适合其内容。
| |
constrainedHeight:Number (default = NaN ) — 可拉伸或收缩其百分比高度行的行总高度。如果为 NaN,则百分比高度行不受限且适合其内容。
|
Tue Jun 12 2018, 11:04 AM Z