Programación móvil

Filas y Columnas con Jetpack Compose

Aprende a organizar tu interfaz de usuario utilizando filas y columnas en Jetpack Compose.

En Jetpack Compose, puedes organizar tu interfaz de usuario utilizando filas y columnas. Estas son herramientas fundamentales para crear diseños flexibles y adaptativos. A continuación, te mostraré cómo usar Row y Column para estructurar tu UI.

Filas con Row

Antes de comenzar, entendamos qué es una fila. Una fila es un contenedor que organiza sus elementos hijos horizontalmente. Para crear una fila en Jetpack Compose, puedes usar el componente Row. Aquí tienes un ejemplo básico:

@Composable
fun MyRow() {
    Row() {
        Text("Elemento 1")
        Text("Elemento 2")
        Text("Elemento 3")
    }
}

En este ejemplo, hemos creado una fila que contiene tres elementos de texto. Los elementos se organizarán horizontalmente, uno al lado del otro.

Sin embargo, la función Row tiene varios parámetros que te permiten personalizar su comportamiento. Por ejemplo, puedes usar horizontalArrangement para controlar cómo se distribuyen los elementos dentro de la fila:

@Composable
fun MyRow() {
    Row(horizontalArrangement = Arrangement.SpaceBetween) {
        Text("Elemento 1")
        Text("Elemento 2")
        Text("Elemento 3")
    }
}

En este caso, los elementos se distribuirán con espacio entre ellos. El resto de atributos son los siguientes:

AtributoDescripción
horizontalArrangementControla la distribución horizontal de los elementos dentro de la fila.
verticalAlignmentControla la alineación vertical de los elementos dentro de la fila.
modifierPermite aplicar modificaciones a la fila, como padding, tamaño, etc.

Alineación Vertical en Row

Puedes alinear los elementos dentro de un Row utilizamos los atributos horizontalArrangement y verticalAlignment. Por ejemplo:

@Composable
fun MyRow() {
    Row(
        horizontalArrangement = Arrangement.Center,
        verticalAlignment = Alignment.CenterVertically
    ) {
        Text("Elemento 1")
        Text("Elemento 2")
        Text("Elemento 3")
    }
}

En este ejemplo, los elementos se centrarán tanto horizontal como verticalmente dentro de la fila. Puedes experimentar con diferentes valores para horizontalArrangement y verticalAlignment para lograr el diseño que deseas. Algunos valores comunes para horizontalArrangement incluyen Start, End, Center, SpaceBetween, SpaceAround, y SpaceEvenly. Para verticalAlignment, puedes usar Top, CenterVertically, y Bottom.

Columnas con Column

Una columna es un contenedor que organiza sus elementos hijos verticalmente. Para crear una columna en Jetpack Compose, puedes usar el componente Column. Aquí tienes un ejemplo básico:

@Composable
fun MyColumn() {
    Column() {
        Text("Elemento 1")
        Text("Elemento 2")
        Text("Elemento 3")
    }
}

En este ejemplo, hemos creado una columna que contiene tres elementos de texto. Los elementos se organizarán verticalmente, uno debajo del otro. Al igual que con Row, puedes personalizar el comportamiento de Column utilizando los parámetros verticalArrangement y horizontalAlignment:

@Composable
fun MyColumn() {
    Column(
        verticalArrangement = Arrangement.SpaceBetween,
        horizontalAlignment = Alignment.CenterHorizontally
    ) {
        Text("Elemento 1")
        Text("Elemento 2")
        Text("Elemento 3")
    }
}

En este caso, los elementos se distribuirán con espacio entre ellos y se centrarán horizontalmente dentro de la columna. Al igual que con Row, puedes experimentar con diferentes valores para verticalArrangement y horizontalAlignment para lograr el diseño que deseas. Algunos valores comunes para verticalArrangement incluyen Top, Center, Bottom, SpaceBetween, SpaceAround, y SpaceEvenly. Para horizontalAlignment, puedes usar Start, CenterHorizontally, y End.

Conclusión

Las filas y columnas son herramientas esenciales para organizar tu interfaz de usuario en Jetpack Compose. Utilizando Row y Column, puedes crear diseños flexibles y adaptativos que se ajusten a las necesidades de tu aplicación. Experimenta con los diferentes parámetros de alineación y distribución para lograr el diseño perfecto para tu UI.

Copyright Jesús Aurelio Castro Magaña © 2026