Нужно лучше понять, как определяется размер для элементов Flex / Spark UI - PullRequest
0 голосов
/ 13 февраля 2012

В общем, я до сих пор не нашел окончательного способа заставить контейнеры Flex и Spark иметь размеры, соответствующие их дочерним элементам.Я много раз искал хорошую документацию для этой концепции, но мне еще не удалось найти ничего, что в достаточной мере объясняет концепции.

Простой пример того, что я часто хочу сделать, - это равномерно нарисовать границу вокруг набора элементов управления.,Цель здесь состоит в том, чтобы все элементы пользовательского интерфейса автоматически определяли размеры.

<s:BorderContainer>
  <s:HGroup>
    <s:Label text="l1" />
    <s:Label text="very long label 2" />
  </s:HGroup>
</s:BorderContainer>

Я бы хотел, чтобы Labels определял их размер на основе свойства text, а значение HGroup должно быть равнодостаточно большой, чтобы содержать метки, а BorderContainer должен содержать только то, что HGroup.

Теперь этот простой пример может работать, а может и не работать, как хотелось бы, я еще не выяснил, как определить, как будет выглядеть вывод, без попытки кода. Кто-нибудь знает хороший способ понять этот процесс, чтобы я мог детерминистически знать, как все будет выглядеть?


Теперь более сложный пример, над которым я сейчас работаю.У меня есть класс, который расширяет BorderContainer.В классе я создаю HGroup с 5 Labels в качестве детей HGroup.Затем HGroup добавляется как дочерний элемент ExtendedBorderContainer (с использованием метода addElement()).

Затем новый класс используется в приложении как:

<mx:ViewStack>
  <s:NavigatorContent>
    <my:ExtendedBorderContainer />
  </s:NavigatorContent>
  <!-- more NavigatorContents here -->
</mx:ViewStack>

Iпробовал различные комбинации [max|min]height/width, и я не могу получить желаемую раскладку, которая очень плотно граничит с элементами без постороннего пространства, начиная с самых глубоких Label детей вплоть до NavigatorContent.

1 Ответ

0 голосов
/ 14 февраля 2012

Посмотрите здесь: http://livedocs.adobe.com/flex/3/html/help.html?content=size_position_3.html

Не ясно, в чем ваша проблема.Что касается первой части вашего вопроса: что вы имеете в виду, говоря «может или не может работать, как хотелось бы».Этот пример должен работать и иметь макет, который вы описали.Размер ярлыка сам по себе зависит от свойства текста и так далее.Какое поведение вы получаете?

Вторая часть: Если вы намекаете, что ваш макет в целом в порядке, но имеет дополнительный интервал между элементами, посмотрите на свойства заполнения и пробелов контейнеров.Некоторые контейнеры имеют ненулевое заполнение по умолчанию и пробел, и вы должны переопределить их вручную.

...