El UIListLayout posiciona objetos hermanos GuiObjects en filas horizontales o columnas verticales dentro de su contenedor padre. Cada vez que añades o eliminas un objeto hermano, el diseño se ajusta en consecuencia.

Dirección de llenado
La propiedad FillDirection determina la dirección en la que se renderizarán los hermanos del diseño de lista.

El orden se determina mediante la propiedad SortOrder del diseño, que puede ser ascendente numérico, basado en el valor entero LayoutOrder de cada elemento, o alfanumérico basado en el Name del elemento.

Alineación
Las propiedades HorizontalAlignment y VerticalAlignment determinan la alineación respectiva X y Y de los hermanos de la lista en relación entre sí y los límites generales de la lista dentro de su contenedor. Por ejemplo, una lista llenada horizontalmente con una VerticalAlignment de Center alinea centralmente a los hermanos de la lista entre sí y centra la lista verticalmente en su contenedor.

Envueltura
La propiedad Wraps controla si los hermanos dentro del contenedor padre se envuelven a otra línea cuando su tamaño predeterminado excede el ancho/alto de los límites del contenedor.

Relleno
La propiedad Padding determina la cantidad de espacio vacío entre cada elemento de la lista, establecido ya sea como una escala (porcentaje del tamaño del contenedor en la dirección actual) o un desplazamiento (valor de espaciamiento estático similar al tamaño de píxeles).
Diseños de flexibilidad
Integrar flexibilidad en un UIListLayout es una forma poderosa de llenar/distribuir equitativamente o alinear/estirar elementos de la lista a través de su línea, o flexibilizar elementos específicos a través de un espacio variable.
Llenado o distribución igual
Cuando la dirección de llenado del diseño de lista está configurada en Horizontal, la propiedad HorizontalFlex especifica cómo distribuir el espacio horizontal adicional en el contenedor padre. De manera similar, cuando la dirección de llenado está configurada en Vertical, la propiedad VerticalFlex especifica cómo distribuir el espacio vertical adicional.

Un uso práctico de HorizontalFlex es una interfaz de ventana con pestañas donde la flexibilidad llena la barra de pestañas de manera equitativa, sin importar la cantidad de pestañas. No hay un enfoque más fácil que la flexibilidad en este caso, porque calcula automáticamente el ancho de cada pestaña sin configuraciones de ancho definidas por el desarrollador, y se ajusta automáticamente si cambia la cantidad de pestañas.

Alineación de línea de elementos
La propiedad ItemLineAlignment define la alineación en la dirección cruzada de los hermanos dentro de una línea, permitiéndote alinear objetos de diferentes anchos/alturas o hacer que objetos de menor ancho/alto llenen toda su línea.

Un caso de uso práctico para ItemLineAlignment es estirar una serie de baldosas de tamaño inconsistente para que llenen toda su fila (Stretch), haciendo que el diseño sea más cohesivo.

Flexibilizar elementos individuales
Si bien flexibilizar un diseño completo es una utilidad poderosa, ciertos diseños son más adecuados para flexibilizar elementos individuales. En tales diseños, algunos elementos en la lista mantienen su tamaño básico mientras que otros elementos se flexibilizan para llenar espacios variables. Un uso práctico es un widget de barra deslizante con etiquetas uniformes labels en ambos extremos y una barra deslizante flexible que llena todo el ancho entre.

Para establecer un elemento de lista específico como flexible, inserta un UIFlexItem como hijo del elemento flexible, luego establece su propiedad FlexMode en Fill, Grow, Shrink o Custom.
