大家一定会认为是使用myComponent.visible = false;,但实际上它并不能如你所愿。如果其父元素为VBox或HBOX ,那么会有一个间隙。你可以设置它的Height为0,但仍要注意verticalGap和horizontalGap。
解决方法是visible和includeInLayout 一起使用,详见代码:
程序代码
<?xml version="1.0" encoding="utf-8"?>
<mx:Application
xmlns:mx=" http://www.adobe.com/2006/mxml "
layout="vertical">
<mx:states>
<mx:State name="hideText">
<mx:SetProperty target="{myText}"
name="includeInLayout" value="false" />
<mx:SetProperty target="{myText}"
name="visible" value="false" />
</mx:State>
</mx:states>
<mx:Button label="hide text"
click="currentState = 'hideText'" />
<mx:Text id="myText" text="hello, this text will
be hidden or shown, depending on the buttons" />
<mx:Button label="show text"
click="currentState = ''" />
</mx:Application>
解决方法是visible和includeInLayout 一起使用,详见代码:
程序代码
<?xml version="1.0" encoding="utf-8"?>
<mx:Application
xmlns:mx=" http://www.adobe.com/2006/mxml "
layout="vertical">
<mx:states>
<mx:State name="hideText">
<mx:SetProperty target="{myText}"
name="includeInLayout" value="false" />
<mx:SetProperty target="{myText}"
name="visible" value="false" />
</mx:State>
</mx:states>
<mx:Button label="hide text"
click="currentState = 'hideText'" />
<mx:Text id="myText" text="hello, this text will
be hidden or shown, depending on the buttons" />
<mx:Button label="show text"
click="currentState = ''" />
</mx:Application>