El Absolute Layout es una herramienta clave en la creación de interfaces de usuario (UI) atractivas y efectivas, ofreciendo una gran flexibilidad en la ubicación y el solapamiento de controles. Este layout permite configurar tanto valores proporcionales como absolutos, facilitando posicionar elementos con precisión y creando superposiciones visuales interesantes en tus diseños.
¿Qué es el Absolute Layout y cuáles son sus principales ventajas?
El Absolute Layout destaca principalmente porque permite superponer diversos controles (o elementos visuales), creando interfaces dinámicas y atractivas visualmente. Este layout maneja dos propiedades esenciales:
LayoutBounds: Define la posición (coordenadas X, Y) y el tamaño (ancho, alto) de cada control.
LayoutFlags: Indica cómo serán interpretados estos valores definidos en LayoutBounds, bien sea en términos absolutos o proporcionales.
¿Cómo se utilizan las propiedades LayoutBounds y LayoutFlags?
La propiedad LayoutBounds acepta tanto valores absolutos (números enteros que especifican posiciones fijas) como proporcionales (valores decimales entre 0 y 1). Para coordenadas proporcionales, considera el típico plano cartesiano para asignar ubicaciones precisas.
Por otro lado, la propiedad LayoutFlags ofrece opciones como:
All: Usa valores proporcionales para coordenadas e interpretación.
XProportional / YProportional: Solo la coordenada X o Y será proporcional, respectivamente.
No es obligatorio usar LayoutFlags en caso de emplear valores absolutos.
¿Cómo implementar el Absolute Layout en un ejemplo práctico?
Para implementar este layout, sigue estos pasos básicos:
Abre y cierra las etiquetas <AbsoluteLayout> en tu interfaz.
Agrega etiquetas de controles (como BoxView, Image, Label) dentro del AbsoluteLayout.
Define las propiedades AbsoluteLayout.LayoutBounds indicando posición y tamaño.
Si usas valores proporcionales, agrega la propiedad AbsoluteLayout.LayoutFlags para la interpretación correcta.
En este ejemplo, las coordenadas (0.33, 0.33) son proporcionales, lo que posiciona el BoxView relativamente al contenedor incluyendo ancho y alto.
¿Qué tener en cuenta al trabajar con imágenes en un Absolute Layout?
Al agregar imágenes o cualquier recurso visual desde tu proyecto, asegúrate de:
Ubicarlas dentro de la carpeta de recursos adecuada.
Definir correctamente la acción de recurso (por ejemplo, Maui Image) para asegurar que sean visibles en todas las plataformas.
Mantener una nomenclatura homogénea (evitar mayúsculas para Android, por ejemplo).
¿Cómo posicionar múltiples controles en Absolute Layout?
Puedes colocar múltiples controles solapados con precisión modificando propiedades individuales de LayoutBounds. Cambiar valores específicos ajustará inmediatamente la posición de los elementos en la interfaz:
Modifica la coordenada X para los movimientos horizontales.
Modifica la coordenada Y para los movimientos verticales.
Si cambias valores en tiempo de ejecución (por ejemplo, desde Visual Studio), apreciarás en tiempo real cómo se mueven los controles para adaptarse a las nuevas coordenadas asignadas.
¿Quieres seguir practicando y mejorando con Absolute Layout?
Te invitamos a practicar y compartir tus avances con la comunidad. Explora los recursos adicionales recomendados para profundizar tu conocimiento y siéntete libre de compartir tus resultados o hacer preguntas.
Diseño de Interfaces con Absolute Layout en Visual Studio
¿Se podría hacer algo como el position de CSS, donde los elementos con posición absoluta contenidos dentro de uno con posición relativa, haría que los absolutos tomen como referencia el objeto que los contiene para los valores de posicionamiento, convirtiéndose en el eje 0,0 la esquina superior izquierda de la imagen en este caso la creditcard? 🤔
No logro obtener el mismo resultado en iOS y Android.
Este es el resultado en Android:
Como se puede observar la pantalla de rellena de color negro y no se aprecian las líneas y el texto.
Este es el resultado en iOS:
En iOS el resultado es como lo muestra Leomaris, aunque solo puedo ver 3 de los 4 BoxViews.
Si le quito el atributo AbsoluteLayout.LayoutFlags="All" si logro ver los 4 BoxViews en Android
Puedes agregar la propiedad color para poder distinguirlo
Hola a todos!
Así quedó mi diseño, muy interesante la clase.
lo comparto por google drive pero no se ve.
Mi diseño. Ambos, la tarjeta y el cuadro gris fueron hechos con AbsoluteLayout, solo que la tarjeta de fondo usé BoxView.
En la primera parte de la clase para realizar las lineas, utilice exactamente el mismo codigo que muestran para el absolutelayout pero al intentar ejecutarlo con Windows Machine , pero me da una excepcion "Excepcion win32 no controlada", en donde me saca advertencia que "Hay un depurador asociado a PagePlatziSample.exe, pero no esta configurado para depurar esta excepcion no controlada. Para depurar esta excepcion, desasocie el depurador actual." y aunq seleccione cualquier cosa no me permite ejecutarlo. Si quito la linea del boxview que tiene los valores proporcionales, me permite ejecutar sin problema. Me faltará alguna libreria o algo?
Hola!, este es mi diseño:
Todo fue hecho con Xaml sin imágenes, si gustan les dejo el código:
Cuando le agrego el "AbsoluteLayout.LayoutFlags=All" No se ven las lineas, por lo que cambien los BoxView 2,3 y 4 a BackgroundColor="Black" para que se vean
Gracias!
😎👍
Asi deje mi diseño
<AbsoluteLayoutHorizontalOptions="CenterAndExpand"><ImageSource="creditcard.png"AbsoluteLayout.LayoutBounds="1,0,350,300"AbsoluteLayout.LayoutFlags="PositionProportional"></Image><LabelAbsoluteLayout.LayoutBounds=".10,.20,60,40"AbsoluteLayout.LayoutFlags="XProportional,YProportional"HorizontalTextAlignment="Center"TextColor="Black"Text="1111"FontAttributes="Bold"></Label><LabelAbsoluteLayout.LayoutBounds=".35,.20,60,40"AbsoluteLayout.LayoutFlags="XProportional,YProportional"HorizontalTextAlignment="Center"TextColor="Black"Text="1111"FontAttributes="Bold"></Label><LabelAbsoluteLayout.LayoutBounds=".60,.20,60,40"AbsoluteLayout.LayoutFlags="XProportional,YProportional"HorizontalTextAlignment="Center"TextColor="Black"Text="1111"FontAttributes="Bold"></Label><LabelAbsoluteLayout.LayoutBounds=".85,.20,60,40"AbsoluteLayout.LayoutFlags="XProportional,YProportional"HorizontalTextAlignment="Center"TextColor="Black"Text="1111"FontAttributes="Bold"></Label><LabelAbsoluteLayout.LayoutBounds=".20,.25,200,40"AbsoluteLayout.LayoutFlags="XProportional,YProportional"HorizontalTextAlignment="Center"TextColor="Black"Text="Nombre del dueno fantasma"FontAttributes="Bold"></Label></AbsoluteLayout>```
Reto cumplido
Reto
Agregue un entry para poder digitar los numeros de la tarjeta