【问题标题】:Adobe Flex: vertical alignment of labels in a Form controlAdobe Flex:表单控件中标签的垂直对齐
【发布时间】:2011-07-11 19:01:39
【问题描述】:

如下图所示,我的应用程序中有一个表单。 共有 3 个 FormItem,其中两个包含一个 ComboBox,一个包含一个 HGroup,其中包含一个 ComboBox 和一个 Image。
在最后一个 FormItem 中,标签没有垂直居中。

FormItem 2-3(红色图片)之间的差异是 18px。
FormItem 1-2(图中绿色)之间的差异是22px。

我认为这是因为 HGroup,但我不知道如何解决这个问题。
有什么提示吗?

代码是:

<mx:Form>
  <mx:FormItem id="type" label="xxx:">
    <s:ComboBox />
  </mx:FormItem>
  <mx:FormItem label="xxx:">
    <s:ComboBox />
  </mx:FormItem>
  <mx:FormItem label="xxx:">
    <s:HGroup verticalAlign="middle"
              height="25">
        <s:ComboBox />
        <mx:Image source="@Embed(source='assets/icons/info_xsmall.png')" />
    </s:HGroup>
  </mx:FormItem>
</mx:Form>

【问题讨论】:

  • 你能把代码贴出来吗?
  • 对不起,我忘了 :) 我在问题中添加了代码。

标签: apache-flex actionscript-3 forms label alignment


【解决方案1】:

您需要 HGroup 吗?而是尝试使用 FormItem 的“方向”属性并将其设置为“水平”。所以你的代码现在是:

<mx:Form>
  <mx:FormItem id="type" label="xxx:">
    <s:ComboBox />
  </mx:FormItem>
  <mx:FormItem label="xxx:">
    <s:ComboBox />
  </mx:FormItem>
  <mx:FormItem label="xxx:" direction="horizontal">
        <s:ComboBox />
        <mx:Image source="@Embed(source='assets/icons/info_xsmall.png')" />
  </mx:FormItem>
</mx:Form>

【讨论】:

  • 应该补充说使用上述技术应该确保您的标签垂直对齐。
  • 当您这样做时,您无法将 FormItem 内的元素垂直居中。如果有人遇到同样的问题,解决方案是将元素的高度设置为相同的固定值。 (Flex3 仍然存在)
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2014-05-14
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多