Flex: при скрытии компонентов в flex

Когда я устанавливаю компонент в visible = false, компонент скрывается, но как я могу заставить его не занимать места (получить контейнер, к которому он относится, чтобы изменить размер?)

<mx:HBox width="100%" height="100%">
...
</mx:HBox>

<mx:HBox width="100%" id="boxAddComment" visible="false" >
    <mx:TextArea id="txtComment"/>
    <mx:Button label="Spara" click="addComment();"/>
</mx:HBox>

Когда boxAddComment видимо = false, я хочу, чтобы первый HBox принимал 100% -ную высоту.

Ответы

Ответ 1

используйте свойство includeInLayout. например.


<mx:HBox width="100%" height="100%">
...
</mx:HBox>

<mx:HBox width="100%" id="boxAddComment" visible="false" includeInLayout="false" >
    <mx:TextArea id="txtComment"/>
    <mx:Button label="Spara" click="addComment();"/>
</mx:HBox>


Ответ 2

Использование includeInLayout ="true" или "false" приведет к переключению пространства, которое требуется для потока элементов, отображаемых в этом разделе.

Важное примечание: Если вы не укажете visible="false" при использовании includeInLayout = "false", вы обычно получаете что-то, что нежелательно, что ваш элемент (boxAddComment) все еще отображается на страница, но материал ниже id="boxAddComment" будет накладываться визуально. Итак, в общем, вы, вероятно, хотите синхронизировать "includeInLayout" и "visible".

Ответ 3

Предложение Росс Хендерсон в привязке includeInLayout с boxAddComment.visible отлично работает с Flex 3.0, но я обнаружил, что он не работает в Flex 3.6 (я видел публикацию, что она фактически перестает работать с Flex 3.3).

Просто fyi.