flex容器解析
通常在Flex种有两种形式的容器:布局和导航。
在容器中我们可以同时设置一些空间和子容器,我们可以叫在容器内定义的任何组件为该容器的孩子。
在一个Flex程序的根部是一个叫做Application Container的容器,代表整个Flash Player的画图面板,这个容器用来装载该程序中其他所有的控件和子容器。
不同的容器定义了不同的布局规则:
除了Canvas容器外,其他所有的容器都自持自动(automatic)布局,在这种类型的布局中,我们不需要去举止指定一个组件的坐标(x,y),相反,我们可以通过调整容器的各种属性去布局,如调整子组件之间的位置顺序,如果设置一些容器得子属性,如gaps,或者设置一个Spacer子控件等。举个例子,我们可以用HBox来让子控件呈水平排列。
Canvas容器采用的是绝对布局形式,这样我们可以随意指定一个子组件的X和Y坐标,另外我们也可以用constraints-base布局来控制离父容器的边距,底线和中心点。
布局容器:用来控制子组件的大小和位置,比如Grid布局容器规定了其子组件的形式就像HTML中的table一样,而DividedBox容器在中间有一条分界线,可以让用户随意拖动分界线来改变分界线两侧区域的大小。而TitleWindow容器也提供一个bar,她能包含标题和状态的信息。
导航容器: 主要提供导航让用户选择各种功能,如菜单容器,tab容器等
容器名 |
类型 |
简介 |
Accordion
|
导航
|
将不同类型的信息放入一系列定义好的panel中,在任何时间内总是有一个panel处在激活状态
|
ApplicationControlBar
|
布局 |
用来存放子组件并提供全局导航和各种应用程序的命令。可以被放在一个Application容器的最顶端。 |
Box (HBox and VBox)
|
布局 |
以水平或者垂直的方式布局子组件。 |
Canvas
|
布局 |
该容器中的子组件必须明确的给定坐标位置。 |
ControlBar
|
布局 |
可以将子组件放置在一个panel或者TitleWindow的下边缘。 |
DividedBox (HDividedBox VDividedBox)
|
布局 |
水平或者垂直的布局其子组件,类似Box容器,只是其中多了一条水平或者垂直的分界线将容器分割成两个区域。 |
Form
|
布局 |
可以用来设计一个表单 |
Grid
|
布局 |
可以布局一个类似HTML table的形式 |
Panel
|
布局 |
显示一个title bar,一些说明,边框和一些子组件 |
TabNavigator
|
导航 |
可以设置许多tab,选择不同的tab选项卡可以切换到不同的内容区域。 |
Tile
|
布局 |
有点类似grid 可以指定行数和列数。 |
TitleWindow container |
布局 |
类似一个window窗口,有关闭按钮,标题栏,菜单栏等。 |
ViewStack
|
导航 |
一个类似栈的导航容器 |