как найти высоту дочерних элементов в TabNavigator, без высоты вкладок? - PullRequest
0 голосов
/ 14 ноября 2009

У меня проблемы с размерами в TabNavigator. Прямые дети TabNavigator - это холсты, и в них я добавляю изображения. Я пытаюсь изменить размеры изображений, чтобы они помещались в Canvas без полос прокрутки. Высота холста установлена ​​на 100% от родительского, то есть TabNav. Затем я устанавливаю image.height = parent.height * .9

В результате Flex создает полосы прокрутки, поскольку изображения слишком велики. Похоже, что основной причиной является то, что свойство высоты TabNavigator представляет собой высоту всего компонента, включая высоту вкладок. Поэтому я предполагаю, что в нем также есть небольшая полоса между вкладками и дочерними элементами TabNavigator.

Это имеет смысл, но есть ли свойство, которое возвращает только рост дочерних элементов?

Мне известны свойства политики полосы прокрутки, и я экспериментировал с ними. Я знаю, что я также могу попробовать другой множитель для размера изображения, чтобы он соответствовал. Просто кажется, что должно быть свойство, чтобы получить размер пространства для детей.

1 Ответ

0 голосов
/ 14 ноября 2009

Просматривая источник, вы обнаружите свойство "contentHeight", которое, по-видимому, вам нужно.

Метод заканчивается этой строкой:

return unscaledHeight - tabBarHeight - vmTop - vmBottom;

, который, кажется, именно то, что вы ищете. К сожалению, это свойство защищено, как и многие вещи, которые мы разработчики хотим получить из библиотеки Flex. :)

Ваше самое быстрое решение, использующее это, состояло бы в подклассе TabNavigator и публичном раскрытии этого свойства; или вы можете просто сделать этот расчет самостоятельно:

image.height = (parent.height - TabNavigator(parent).tabBar.height) * .9);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...