Saltearse al contenido

TopAppBar

MaterialMaterial 3
Imagen del componente TopAppBar - MaterialImagen del componente TopAppBar - Material 3

La TopAppBar muestra información y acciones relacionadas con la pantalla actual.

Tiene ranuras para un título, un icono de navegación y acciones. La ranura del título esta insertada desde el principio por defecto.

Implementación

Definición del componente

Terminal window
@Composable
fun TopAppBar(
title: @Composable () -> Unit,
modifier: Modifier = Modifier,
navigationIcon: @Composable (() -> Unit)? = null,
actions: @Composable RowScope.() -> Unit = {},
backgroundColor: Color = MaterialTheme.colors.primarySurface,
contentColor: Color = contentColorFor(backgroundColor),
elevation: Dp = AppBarDefaults.TopAppBarElevation
)
AtributoDescripción
titleEl título que se mostrará en la TopAppBar.
modifierEl modificador permite personalizar el composable.
navigationIconEl icono que se muestra al principio, normalmente debería ser un IconButton o un IconToggleButton.
actionsLas acciones mostradas al final, suelen ser IconButton. Por defecto es un RowScope, por lo que los iconos dentro se colocarán horizontalmente.
backgroundColorEl color de fondo.
contentColorEl color del contenido.
elevationElevación del componente.

Ejemplos

Imagen del componente TopAppBar - Material

Terminal window
import androidx.compose.material.ContentAlpha
import androidx.compose.material.Icon
import androidx.compose.material.IconButton
import androidx.compose.material.LocalContentAlpha
import androidx.compose.material.Text
import androidx.compose.material.TopAppBar
import androidx.compose.material.icons.Icons
import androidx.compose.material.icons.outlined.AccountCircle
import androidx.compose.material.icons.rounded.Menu
import androidx.compose.material.icons.rounded.Search
import androidx.compose.runtime.Composable
import androidx.compose.runtime.CompositionLocalProvider
@Composable
fun TopAppBarSample() {
TopAppBar(
navigationIcon = {
IconButton(onClick = { /*TODO*/ }) {
Icon(imageVector = Icons.Rounded.Menu, contentDescription = null)
}
},
title = { Text(text = "Sample Title") },
actions = {
CompositionLocalProvider(LocalContentAlpha provides ContentAlpha.high) {
IconButton(onClick = { /*TODO*/ }) {
Icon(
imageVector = Icons.Rounded.Search,
contentDescription = null
)
}
IconButton(onClick = { /*TODO*/ }) {
Icon(
imageVector = Icons.Outlined.AccountCircle,
contentDescription = null
)
}
}
})
}