2008-12-17 18 views
14

Cuando fijo a un componente visible = false las pieles de componentes, pero ¿cómo puedo conseguir que no ocupan espacio (sacar el contenedor pertenece a cambiar el tamaño de ??)Flex: al ocultar componentes en Flex

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

Cuando boxAddComment es visible = false quiero el primer HBox para tomar la altura del 100%.

Respuesta

32

utiliza la propiedad includeInLayout. p.ej.

 

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

 
14

Usando includeInLayout ="true" o "false" alternará el espacio que se necesita en el flujo de elementos que se prestan en este apartado.

Nota importante: Si no se especifica cuando se utiliza visible="false"includeInLayout = "false" entonces lo normal es conseguir algo que no es deseable que es que su artículo (boxAddComment) es todavía visible en la página pero cosas más adelante id="boxAddComment" se superponen visualmente . Por lo tanto, en general, probablemente desee que "includeInLayout" y "visible" estén sincronizados.

+14

Esto puede ser una buena manera de mantener sincronizados los dos valores: '' –

1

La sugerencia de Ross Henderson en la vinculación includeInLayout con boxAddComment.visible funciona muy bien con Flex 3.0 pero descubrí que no funciona en Flex 3.6 (vi una publicación que realmente deja de funcionar desde Flex 3.3).

Just fyi.

+0

Funciona bien en 4.1 – iskuhar