Button
Los botones son componentes fundamentales que permiten al usuario activar una acción definida. Existen cinco tipos de botones. En la siguiente tabla, se describe el aspecto de cada uno de los cinco tipos de botones, así como dónde debes usarlos.
Tipo |
Aspecto |
Propósito |
---|---|---|
Filled |
Fondo sólido con texto en contraste |
Botones de énfasis alto. Se usan para acciones principales en una aplicación, como "enviar" y "guardar". El efecto de sombra enfatiza la importancia del botón. |
Tonal relleno |
El color de fondo varía para que coincida con la superficie. |
También para acciones principales o significativas. Los botones rellenos proporcionan más peso visual y se adaptan a funciones como "Agregar al carrito" y "Acceder". |
Alta |
Se destaca porque tiene una sombra. |
Cumple una función similar a la de los botones tonales. Aumenta la elevación para que el botón aparezca aún más destacado. |
Outlined |
Tiene un borde sin relleno. |
Botones de énfasis medio, que contienen acciones importantes, pero no principales. Se combinan bien con otros botones para indicar acciones secundarias alternativas, como "Cancelar" o "Atrás". |
Texto |
Muestra texto sin fondo ni borde. |
Botones de bajo énfasis, ideales para acciones menos importantes, como vínculos de navegación o funciones secundarias, como "Más información" o "Ver detalles". |
En la siguiente imagen, se muestran los cinco tipos de botones en Material Design.
Plataforma de la API
onClick
: Es la función a la que se llama cuando el usuario presiona el botón.enabled
: Cuando es falso, este parámetro hace que el botón aparezca como no disponible e inactivo.colors
: Es una instancia deButtonColors
que determina los colores que se usan en el botón.contentPadding
: Es el padding dentro del botón.
Botón relleno
El componente de botón relleno usa el elemento componible básico Button
. Se completa con un color sólido de forma predeterminada. En el siguiente fragmento, se muestra cómo implementar el componente:
@Composable fun FilledButtonExample(onClick: () -> Unit) { Button(onClick = { onClick() }) { Text("Filled") } }
Esta implementación aparece de la siguiente manera:
Botón tonal relleno
El componente de botón tonal relleno usa el elemento componible FilledTonalButton
.
De forma predeterminada, se completa con un color tonal.
En el siguiente fragmento, se muestra cómo implementar el componente:
@Composable fun FilledTonalButtonExample(onClick: () -> Unit) { FilledTonalButton(onClick = { onClick() }) { Text("Tonal") } }
Esta implementación aparece de la siguiente manera:
Botón con contorno
El componente de botón con contorno usa el elemento componible OutlinedButton
. Aparece con un esquema de forma predeterminada.
En el siguiente fragmento, se muestra cómo implementar el componente:
@Composable fun OutlinedButtonExample(onClick: () -> Unit) { OutlinedButton(onClick = { onClick() }) { Text("Outlined") } }
Esta implementación aparece de la siguiente manera:
Botón elevado
El componente de botón elevado usa el elemento componible ElevatedButton
. Tiene una sombra que representa el efecto de elevación de forma predeterminada. Ten en cuenta que es
esencialmente un botón con un contorno y una sombra.
En el siguiente fragmento, se muestra cómo implementar el componente:
@Composable fun ElevatedButtonExample(onClick: () -> Unit) { ElevatedButton(onClick = { onClick() }) { Text("Elevated") } }
Esta implementación aparece de la siguiente manera:
Botón de texto
El componente de botón de texto usa el elemento componible TextButton
. Hasta que se presiona,
solo aparece como texto. No tiene un relleno ni un contorno sólidos de forma predeterminada.
En el siguiente fragmento, se muestra cómo implementar el componente:
@Composable fun TextButtonExample(onClick: () -> Unit) { TextButton( onClick = { onClick() } ) { Text("Text Button") } }
Esta implementación aparece de la siguiente manera: