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.