Отменить явное значение высоты гибкого компонента? - PullRequest
2 голосов
/ 22 марта 2011

Когда компонент контейнера объявляется без установки определенного значения высоты, высота контроллера будет автоматически установлена ​​на значение, которое позволяет отображать весь его контент / дочерние элементы без прокрутки (когда это возможно).

После того, как компонент инициализирован с правильной высотой, я явно изменяю значение высоты контейнера.

Мой вопрос: после изменения высоты компонента можно ли вернуться к исходной высоте, которая была автоматически установлена ​​на основе содержимого контейнеров? Я ищу способ отменить явное значение высоты компонента.

Ответы [ 3 ]

5 голосов
/ 22 марта 2011

Один прием, который может быть полезен для вас, - установить высоту на «NaN», которая фактически «сбрасывает» явное значение, которое вы установили ранее.

1 голос
/ 22 марта 2011
* Высота 1001 * будет равна автоматически устанавливается на значение

Это не совсем автоматически. Компонент всегда устанавливает высоту и ширину дочерних элементов; но он никогда не сможет установить высоту и ширину самого себя. Он может только выдвигать предложения (используя метод меры, устанавливая свойство measureHeight и measureWidth). В зависимости от того, хочет ли родительский контейнер использовать или игнорировать эти значения измеренный вес / измеренную ширину.

Все контейнеры Flex Framework имеют код, написанный для расчета высоты / ширины / позиционирования. Если вы используете их, это может показаться автоматическим; но это на самом деле довольно ручной процесс. Вы просто используете код, который кто-то написал.

Если вы явно измените значение высоты контейнера, как вы это сделаете? Внутри контейнера (this.height = newvalue)? Или родитель как-то меняет высоту (myContainer.height=newValue)?

Кроме того, это зависит от того, какое было первоначальное значение высоты. Возможно, вы можете использовать значение measureHeight, но я бы на это не рассчитывал. Хотя, если вы указываете абсолютную высоту и абсолютную ширину, измерение никогда не будет выполнено.

Вероятно, ответ Джейсона о сохранении старого значения является лучшим.

1 голос
/ 22 марта 2011

Без сохранения исходной высоты до ее изменения вручную, я не верю, что это возможно.

Что вы можете сделать, это расширить любой базовый объект, который вы используете в качестве контейнера, чтобы добавить новое свойство с именем OriginalHeight (может также добавить OriginalWidth, пока вы там).

Тогда вы переопределите функцию set height, чтобы сохранить исходную высоту в вашем новом свойстве OriginalHeight, прежде чем оно будет изменено.Когда вам нужно установить его обратно, вы просто установите контейнер height = OriginalHeight.

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