上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。




「ボタンなどの制御により、コントロールを表示・非表示に変更したい」
または、「表示には出したくないけど、処理用としてコントロールを使用したい」
って時があると思います。

各コントロールのVisible設定のみをTrue・Falseで変更すると
表示上は見えなくなりますが、レイアウトとしては残ってしまいます。

これを解決する為には、プロパティの「includeLayout」を使用します。
サンプルを用いて使用方法とその効果を記載します。




Main.mxml




<?xml version="1.0" encoding="utf-8"?>
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" layout="absolute">

<mx:Script>
<![CDATA[

private function onSample2VisibleTrueClick():void {
lblSample2.visible = true;
}

private function onSample2VisibleFalseClick():void {
lblSample2.visible = false;
}

private function onSample3VisibleTrueClick():void {
lblSample3.visible = true;
lblSample3.includeInLayout = true;
}

private function onSample3VisibleFalseClick():void {
lblSample3.visible = false;
lblSample3.includeInLayout = false;
}

]]>
</mx:Script>

<mx:Canvas backgroundColor="#ffffff">

<mx:VBox>

<mx:HBox>
<mx:Label id="lblSample1" text="サンプル1" />
<mx:Label id="lblSample2" text="サンプル2" />
<mx:Label id="lblSample3" text="サンプル3" />
<mx:Label id="lblSample4" text="サンプル4" />
</mx:HBox>

<mx:Form>
<mx:FormItem label="サンプル2ラベル">
<mx:Button label="表示" click="{onSample2VisibleTrueClick()}" />
</mx:FormItem>

<mx:FormItem label="サンプル2ラベル">
<mx:Button label="非表示" click="{onSample2VisibleFalseClick()}" />
</mx:FormItem>

<mx:FormItem label="サンプル3ラベル(IncludeLayout指定あり)">
<mx:Button label="表示" click="{onSample3VisibleTrueClick()}" />
</mx:FormItem>

<mx:FormItem label="サンプル3ラベル(IncludeLayout指定あり)">
<mx:Button label="非表示" click="{onSample3VisibleFalseClick()}" />
</mx:FormItem>
</mx:Form>
</mx:VBox>

</mx:Canvas>
</mx:Application>


実行結果は以下のようになります。

実行結果




サンプル2ラベルの表示・非表示はVisibleプロパティのみを変更している為、
表示・非表示はされますが、レイアウトとしては残ったままとなってしまいます。

サンプル3ラベルの表示・非表示はVisibleプロパティとincludeLayoutプロパティを
変更している為、非表示にした際、レイアウトからも削除されサンプル4ラベルが
移動しています。表示した際も同様にサンプルラベル4の前に表示されていることが
わかります。

少しでも参考になれば応援お願いします。












上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。