嵌套组件中的Flex FormItem布局

时间:2011-07-20 01:23:45

标签: flex forms layout

我有一个相当简单的Flex布局问题。

有没有让FormItem包含在一个嵌套容器中,以跟随父表单容器中FormItem的对齐?

例如:

<mx:Form>

  <mx:FormItem label="This is a long label" id="formItem1">
   <mx:HBox>
     <mx:TextInput />
   </mx:HBox>
  </mx:FormItem>

  <s:BorderContainer>
    <mx:FormItem label="ShrtLbl" id="formItem2">
     <mx:HBox>
       <mx:TextInput />
     </mx:HBox>
    </mx:FormItem>  
  </s:BorderContainer>

</mx:Form>

在这种情况下,我希望formItem1和formItem2的标签具有相同的宽度,如果定义如下:

<mx:Form>

  <mx:FormItem label="This is a long label" id="formItem1">
   <mx:HBox>
     <mx:TextInput />
   </mx:HBox>
  </mx:FormItem>

   <mx:FormItem label="ShrtLbl" id="formItem2">
     <mx:HBox>
       <mx:TextInput />
     </mx:HBox>
   </mx:FormItem>  

</mx:Form>

有什么想法吗?

1 个答案:

答案 0 :(得分:0)

Spark Form Skin使用spark.layouts.FormLayout来控制其子项的布局。

来自FormLayout来源:

  

FormLayout类定义Spark Form外观的默认布局。   FormLayout为Form中的子FormItem容器提供垂直布局。

     

如果任何子容器使用FormItemLayout,FormLayout将使用   对齐每个孩子的ConstraintColumns。

因此,布局不会查看表单的任何嵌套子项。

我建议您创建自己的自定义表单布局来处理您的情况。

oops,我看到你使用的是mx:FormItem而不是s:FormItem。我建议使用spark变种。

此外,FormItem中不需要mx:HBox(或s:HGroup)。