viernes, 22 de febrero de 2013

Campos con "Visible" dinámico, no ocupan espacio en el Layout cuando se ocultan.


El objetivo de este tip, es explicar como hacer cuando tenemos un campo (variable o atributo) en un panel SD, con la propiedad "Visible = false", éste no ocupe espacio en el layout, y cuando la hacemos visible nuevamente (mediante un evento de usuario por ejemplo), aparezca en su espacio correspondiente.
Este ejemplo solo es valido para iOS.


En este ejemplo usaremos un PanelSD, una variable (DataType: Character(30)), dos textBlock y un botón, de la siguiente manera:


  • Panel:

El panel deberá tener alto cero (0) en la segunda fila, es decir, en la fila donde se encuentre la variable o atributo que se va a mostrar y ocultar dinamicamente. 
En la siguiente imagen se puede apreciar destacado en rojo:




  • Variable/Atributo:
Deberá tener como propiedades, "Autogrow = True" y "Visible = False".

  • Botón:

Programaremos aquí el evento de usuario que hará visible a la variable "&VariableText".

//Codigo------------------------------------------

Event 'VER'
Composite
&VariableText = 'testWAutogrow'
&VariableText.Visible = true
Endcomposite
Endevent


//--------------------------------------------------


  • Comportamiento y aclaraciones:

Al ejecutar el ejemplo, veremos la siguiente pantalla (iOS):



Como se puede ver, están los 2 text block's juntos, ya que la variable se encuentra con la
propiedad "Visible" en false. Por lo tanto, logramos optimizar el espacio del layout.

Ahora veremos, como se ve cuando hacemos "tap" en el botón "VER", para inicializar la variable y darle visibilidad en nuestro layout:




Nota: Para que la variable no reserve el espacio en pantalla, la misma debe ser vacía.
         (Ej: &VariableText = "").


No hay comentarios:

Publicar un comentario en la entrada