包 | spark.layouts |
类 | public class BasicLayout |
继承 | BasicLayout LayoutBase OnDemandEventDispatcher Object |
子类 | StackLayout |
语言版本: | ActionScript 3.0 |
产品版本: | Flex 4 |
运行时版本: | Flash Player 10, AIR 1.5 |
x
和 y
属性,或使用约束来定位每个子代。
注意:基于 Spark List 的控件(Spark List 控件及其子类,如 ButtonBar、ComboBox、DropDownList 和 TabBar)不支持 BasicLayout 类。不要将 BasicLayout 与基于 Spark List 的控件一起使用。
按元素支持的约束有 left
、right
、top
、bottom
、horizontalCenter
、verticalCenter
、baseline
、percentWidth
和 percentHeight
。始终将考虑元素的最小大小和最大大小。
容器的测量大小是根据元素、其约束和其首选大小进行计算的。容器的测量大小足够大,能够在满足元素约束的情况下以元素的首选大小容纳所有元素。
以下是如何计算测量大小的一些示例:
- 如果容器具有指定了
left
约束的单个元素,则容器的测量宽度将等于元素的首选宽度加上left
约束的值。 - 如果容器具有指定了
percentWidth
的单个元素,则容器的测量宽度将等于元素的首选宽度。尽管元素的percentWidth
并不直接计入这些计算中,但在调用updateDisplayList()
方法期间将考虑它。 - 如果容器具有指定了
baseline
约束的单个元素,则容器的测量高度将等于元素的首选高度加上baseline
再减去元素的baselinePosition
属性的值。 - 如果容器具有指定了
verticalCenter
约束的单个元素,则容器的测量高度将等于元素的首选高度加上两倍的verticalCenter
约束值。
在 updateDisplayList()
方法的调用过程中,元素的大小是根据按以下优先级顺序的规则确定的(始终会考虑元素的最小大小和最大大小):
- 如果元素已设置
percentWidth
或percentHeight
,则会将其大小计算为可用大小的某个百分比,其中可用大小是容器大小减去任何left
、right
、top
或bottom
约束。 - 如果元素具有 left 约束和 right 约束,则会将其宽度设置为容器的宽度减去
left
约束和right
约束。 - 如果元素具有
top
约束和bottom
约束,则会将其高度设置为容器的高度减去top
约束和bottom
约束。 - 将元素设置为其首选宽度和/或高度。
BasicLayout 类计算大小的最小值,并将它作为子代最小大小的最大值:
- 为容器中的每个子代确定它能够收缩到的最小大小:
- 如果子代约束到父代的宽度或高度,那么子代可以收缩到它的最小宽度或高度。使用子代的最小大小。
- 如果子代没有约束到父代,那么它将保持首选大小。使用子代的首选大小。
- 从步骤 1 中查找大小的最大值。
因此,如果子代约束到父代,那么布局将使用子代的最小大小。否则,将使用子代的首选大小来计算容器的最小大小。
元素的位置是根据按以下优先级顺序的规则确定的:
-
horizontalCenter
或verticalCenter
约束指定容器中心与元素中心之间的距离。将horizontalCenter
或verticalCenter
约束设置为零,会使容器内的元素在水平或垂直方向上居中。 - 如果指定了元素的 baseline,则会在垂直方向上定位元素,以使其
baselinePosition
(通常为其第一行文本的基线)与baseline
约束对齐。 - 如果指定了元素的
top
或left
约束,则会定位元素,使元素的布局界限的左上角从容器的左上角偏移指定的值。 - 如果指定了元素的
bottom
或right
约束,则会定位元素,使元素的布局界限的右下角从容器的右下角偏移指定的值。 - 如果没有任何约束确定水平或垂直方向上的位置,则会根据元素的 x 坐标和 y 坐标定位元素。
容器的内容大小将计算为所有布局元素右下角的坐标的最大值。
MXML 语法隐藏 MXML 语法The <s:BasicLayout>
tag inherits all of the tag
attributes of its superclass and adds no additional tag attributes:
<s:BasicLayout/>
公共方法
方法 | 由以下参数定义 | ||
---|---|---|---|
构造函数。 | BasicLayout | ||
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 |
受保护的方法
构造函数详细信息
BasicLayout | () | 构造函数 |
public function BasicLayout()
语言版本: | ActionScript 3.0 |
产品版本: | Flex 4 |
运行时版本: | Flash Player 10, AIR 1.5 |
构造函数。
Tue Jun 12 2018, 11:04 AM Z