Я столкнулся с этой проблемой с Flex почти год, и каждый раз придумываю быстрое решение для взлома, которое пока работает. Я бы хотел посмотреть, есть ли у кого-нибудь идеи получше.
Вот условия проблемы:
|------Container ------------|
| explicitHeight: 400 (or whatever)
| |
| |-------- VBox -------| |
| | percentHeight: 100 | |
| | | |
| | |-Repeater------| | |
| | | Potentially | | |
| | | a lot of stuff. | |
|--|--|---------------|---|---|
Проблема в том, что, вопреки тому, что я хотел бы, VBox ВСЕГДА будет расширяться для размещения содержимого внутри него, вместо того, чтобы придерживаться явной высоты своего родителя и создавать полосу прокрутки.
Мое решение заключалось в жестком кодировании ссылки на родителя (или, как бы далеко в списке отображения нам нужно было перейти, чтобы найти явно заданное значение, а не процентное значение).
Я даже подумал об использовании этого в служебном классе:
public static function getFirstExplicitHeightInDisplayList(comp:UIComponent):Number{
if (!isNaN(comp.explicitHeight)) return comp.explicitHeight;
if (comp.parent is UIComponent) return
getFirstExplicitHeightInDisplayList(UIComponent(comp.parent));
else return 0;
}
Пожалуйста, скажи мне, что есть способ получше.