Компоновка Flex FormItem во вложенном компоненте - PullRequest
0 голосов
/ 20 июля 2011

У меня довольно простой вопрос о макете 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 голосов
/ 20 июля 2011

Скин Spark Form Skin использует spark.layouts.FormLayout для управления макетом своих дочерних элементов.

Из источника FormLayout:

Класс FormLayout определяет макет по умолчанию для оболочек Spark Form. FormLayout обеспечивает вертикальную компоновку для дочерних контейнеров FormItem в форме.

Если какой-либо из дочерних контейнеров использует FormItemLayout, FormLayout будет выровняйте ConstraintColumns каждого дочернего элемента.

Следовательно, макет не рассматривает вложенных дочерних элементов формы.

Я бы порекомендовал создать собственный макет формы для вашего случая.

упс, я вижу, что вы используете mx: FormItem, а не s: FormItem. Я бы порекомендовал использовать варианты свечей.

Кроме того, нет необходимости иметь mx: HBox (или s: HGroup) внутри FormItem.

...