Как узнать общую высоту контейнера в Flex? - PullRequest
0 голосов
/ 10 августа 2010

Если у меня есть контейнер, и я установил для clipContent значение true, как я могу получить общую высоту дочерних элементов внутри него? Есть ли способ сделать это без перемещения по каждому дочернему элементу и суммирования высот? (Это было бы очень сложно для меня, так как у меня есть mx: Tile с переменной шириной, поэтому я не знаю, сколько у него строк)

Есть идеи? :)

1 Ответ

0 голосов
/ 10 августа 2010

Перебрать детей:

var totalHeight : int = 0
for (i: int = 0; int < container.numChildren; i++){
 totalHeight += container.getchildAt(i).height;
}

Этот код написан в браузере и не проверен.

Звучит так, как будто вы используете макет стиля «Плитка», где плитки могут быть различной, неизвестной ширины. Это правда? Это вообще возможно? Если это так, то вам может потребоваться не общая высота дочерних элементов контейнера, а общая высота всех строк контейнера. Если так, просто следите за переменной 'y'.

Примерно так:

var totalHeight : int = 0
var largestRowHeight : int = o;
var previousY : int = 0;
for (i: int = 0; int < container.numChildren; i++){
 largestRowHeight = Math.max(largestRowHeight), container.getchildAt(i).height);
 if(previousY != container.getchildAt(i).y){
  totalHeight += largestRowHeight;
  largestRowHeight = 0;
 }
 previousY = container.getchildAt(i).y;
}

Последний бит кода даже более грубый, чем первый бит.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...