• horizontalAlign: 布局元素的水平对齐方式,可能的值有 "left"、 "center"或 "right"。
• verticalAlign: 布局元素的竖直对齐方式,可能的值有 "top"、 "middle"或 "bottom"。
- <s:Application xmlns:fx="http://ns.adobe.com/mxml/2009"
- xmlns:s="library://ns.adobe.com/flex/spark"
- xmlns:mx="library://ns.adobe.com/flex/mx" minWidth="955" minHeight="600">
- <s:layout>
- <s:VerticalLayout horizontalAlign="center" verticalAlign="middle"/>
- </s:layout>
- <s:Panel width="30%" height="60" title="panel布局">
- <s:layout>
- <s:HorizontalLayout verticalAlign="middle" horizontalAlign="right"/>
- </s:layout>
- <s:Button label="按钮1" x="36" y="47"/>
- <s:TextInput/>
- </s:Panel>
- <s:TextInput text="文本框"/>
- <s:TextArea text="多行文本框"/>
- </s:Application>
最后看运行结果:
使用绝对定位, 你通过使用其 x 和 y 属性来指定子控件的位置, 或者指定基于限制的布局;否则, Flex 会将该子级置于父容器的位置 0,0 处。 当您指定 x 和 y 坐标时, 仅当您更改这些属性值时, Flex 才会重新定位控件。使用<s:BasicLayout/>标签表示绝对定位。
下面这个例子使用了据对定位标签,容器内名为“按钮1”的组件未定义坐标则默认放在(0,0)位置,其它组件定义了xy则排放在指定位置。
- <s:Application xmlns:fx="http://ns.adobe.com/mxml/2009"
- xmlns:s="library://ns.adobe.com/flex/spark"
- xmlns:mx="library://ns.adobe.com/flex/mx" minWidth="955" minHeight="600">
- <s:layout>
- <s:BasicLayout/>
- </s:layout>
- <s:Button label="按钮1"/>
- <s:Button x="92" y="0" label="按钮2"/>
- <s:TextInput x="0" y="29"/>
- </s:Application>
运行效果如下图所示:
3、基于限制的布局
(1)可以定义一个外层组件,然后再在里面写子组件, 在该布局中锚定组件的侧边或中心以相对于组件的容器进行定位。
(2)使用基于限制的布局来确定支持绝对定位的任何容器的即时子级的位置和大小。
使用子组件的 top、 bottom、 left、 right、 horizontalCenter 或 verticalCenter 样式属性来指定限制。
→锚定组件的边缘
- <s:Panel x="41" y="27" width="250" height="200">
- <s:Button top="50" bottom="50" left="50" right="50" label="按钮"/>
- </s:Panel>
如果在一个方向中锚定两个边, 如顶边和底边, 则在调整容器大小时, 也会调整组件大小(组件可能被拉伸或压缩)。上例运行结果如下图所示:
- <s:Panel x="41" y="27" width="250" height="200">
- <s:Button horizontalCenter="-50" verticalCenter="-50" label="按钮1"/>
- <s:Button horizontalCenter="0" verticalCenter="-0" label="按钮2"/>
- <s:Button horizontalCenter="50" verticalCenter="50" label="按钮3"/>
- </s:Panel>
运行效果如下图所示: