проблемы с использованиемтег в Flex - PullRequest
0 голосов
/ 13 июля 2011

У меня есть простая форма, содержащая два поля ввода.как показано в коде ниже:

<s:Form>
    <s:FormItem width="242" label="Name:">
        <s:TextInput x="1" y="0"/>
    </s:FormItem>
    <s:FormItem width="242" label="Evaluate at:">
        <s:TextInput/>
    </s:FormItem>
</s:Form>

проблема в том, что поля ввода расположены на расстоянии y друг от друга, и я хочу приблизить их немного.если бы я использовал <s:VGroup/> или <s:HGroup/>, есть свойство зазора, чтобы закрыть пробел, но этого свойства нет в теге Form.

Как я могу закрыть пробелы с помощью тега Form?

Ответы [ 3 ]

2 голосов
/ 13 июля 2011

Я сделал так, чтобы создать скин для всех моих форм.Затем в CSS я установил созданный мной скин в качестве обложки формы по умолчанию.

  1. Копировать FormSkin создать YourFormSkin.mxml
  2. Копировать FormItemSkin создать YourFormItemSkin
  3. Изменить разрывв YourFormSkin.mxml
  4. Измените свойство contentGroup LEFT в FormItemSkin.mxml, изменение contentCol:0 будет наименьшим разрывом.Числа относятся к столбцам, установленным макетом формы.

Создайте или отредактируйте свой файл CSS, включив в него:

s|Form{
    skinClass:ClassReference("your.project.view.skins.YourFormSkin");
}
s|FormItem{
    skinClass: ClassReference("your.project.view.skins.YourFormItemSkin");
}

Теперь вы можете настроить каждую форму в своем приложении с помощьюпросто редактируйте два файла скина.

1 голос
/ 13 июля 2011

Вы можете использовать способ Flextras (мне это не нравится, потому что я не фанат AS-кода для макетов), или вы можете сделать это:

<s:Form>
    <s:layout>
        <s:FormLayout gap="0" />
    </s:layout>
    <s:FormItem width="242" label="Name:" height="25">
        <s:TextInput x="1" y="0"/>
    </s:FormItem>
    <s:FormItem width="242" label="Evaluate at:" height="25">
        <s:TextInput/>
    </s:FormItem>
</s:Form>
0 голосов
/ 13 июля 2011

FormItem является контейнером и расширяет SkinnableContainer .Как таковой, он использует класс макета;а свойство gap обычно устанавливается в классе макета.

Итак, если вы используете один из макетов, поддерживающих свойство gap, вы можете сделать что-то вроде этого:

myFormItem.layout.gap = myNewGap;
...