Flex:在flex中隐藏组件时

时间:2008-12-17 16:18:58

标签: flex actionscript-3

当我将组件设置为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%的高度。

3 个答案:

答案 0 :(得分:32)

使用 includeInLayout 属性。 e.g。


<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>


答案 1 :(得分:14)

使用includeInLayout ="true""false"将切换在该部分中呈现的项目流中所占用的空间。

重要说明:如果您在使用visible="false"时未指定includeInLayout = "false",那么您通常会得到一些不受欢迎的内容(boxAddComment })仍然可以在页面上看到,但id="boxAddComment"下面的内容会在视觉上重叠。因此,一般来说,您可能希望“includeInLayout”和“visible”保持同步。

答案 2 :(得分:1)

Ross Henderson建议绑定includeInLayout与boxAddComment.visible在Flex 3.0中运行良好,但我发现它在Flex 3.6中不起作用(我看到自从Flex 3.3以来它实际上停止工作的帖子)。

只是fyi。