В общем, я до сих пор не нашел окончательного способа заставить контейнеры 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
.