BottomAppBar
Functions summary
Unit |
@Composable |
Cmn
|
Unit |
@Composable |
Cmn
|
Functions
BottomAppBar
@Composable
fun BottomAppBar(
modifier: Modifier = Modifier,
backgroundColor: Color = MaterialTheme.colors.primarySurface,
contentColor: Color = contentColorFor(backgroundColor),
cutoutShape: Shape? = null,
elevation: Dp = AppBarDefaults.BottomAppBarElevation,
contentPadding: PaddingValues = AppBarDefaults.ContentPadding,
content: @Composable RowScope.() -> Unit
): Unit
Material Design bottom app bar
A bottom app bar displays navigation and key actions at the bottom of screens.

It can also optionally display a FloatingActionButton, which is either overlaid on top of the BottomAppBar, or inset, carving a cutout in the BottomAppBar.
See BottomAppBar anatomy for the recommended content depending on the FloatingActionButton position.
Note that when you pass a non-null cutoutShape this makes the AppBar shape concave. The shadows for such shapes will not be drawn on Android versions less than 10.
The LocalContentAlpha inside a BottomAppBar is ContentAlpha.medium - this is the default for trailing and overflow icons. It is recommended that any leading icons at the start of the BottomAppBar, such as a menu icon, use ContentAlpha.high instead. This is demonstrated in the sample below.
Also see BottomNavigation.
import androidx.compose.foundation.layout.Spacer import androidx.compose.material.AppBarDefaults import androidx.compose.material.BottomAppBar import androidx.compose.material.ContentAlpha import androidx.compose.material.Icon import androidx.compose.material.IconButton import androidx.compose.material.LocalContentAlpha import androidx.compose.material.icons.Icons import androidx.compose.material.icons.filled.Favorite import androidx.compose.material.icons.filled.Menu import androidx.compose.runtime.CompositionLocalProvider import androidx.compose.ui.Modifier BottomAppBar(windowInsets = AppBarDefaults.bottomAppBarWindowInsets) { // Leading icons should typically have a high content alpha CompositionLocalProvider(LocalContentAlpha provides ContentAlpha.high) { IconButton(onClick = { /* doSomething() */ }) { Icon(Icons.Filled.Menu, contentDescription = "Localized description") } } // The actions should be at the end of the BottomAppBar. They use the default medium // content alpha provided by BottomAppBar Spacer(Modifier.weight(1f, true)) IconButton(onClick = { /* doSomething() */ }) { Icon(Icons.Filled.Favorite, contentDescription = "Localized description") } IconButton(onClick = { /* doSomething() */ }) { Icon(Icons.Filled.Favorite, contentDescription = "Localized description") } }
| Parameters | |
|---|---|
modifier: Modifier = Modifier |
The |
backgroundColor: Color = MaterialTheme.colors.primarySurface |
The background color for the BottomAppBar. Use |
contentColor: Color = contentColorFor(backgroundColor) |
The preferred content color provided by this BottomAppBar to its children. Defaults to either the matching content color for |
cutoutShape: Shape? = null |
the shape of the cutout that will be added to the BottomAppBar - this should typically be the same shape used inside the |
elevation: Dp = AppBarDefaults.BottomAppBarElevation |
the elevation of this BottomAppBar. |
contentPadding: PaddingValues = AppBarDefaults.ContentPadding |
the padding applied to the content of this BottomAppBar |
content: @Composable RowScope.() -> Unit |
the content of this BottomAppBar. The default layout here is a |
BottomAppBar
@Composable
fun BottomAppBar(
windowInsets: WindowInsets,
modifier: Modifier = Modifier,
backgroundColor: Color = MaterialTheme.colors.primarySurface,
contentColor: Color = contentColorFor(backgroundColor),
cutoutShape: Shape? = null,
elevation: Dp = AppBarDefaults.BottomAppBarElevation,
contentPadding: PaddingValues = AppBarDefaults.ContentPadding,
content: @Composable RowScope.() -> Unit
): Unit
Material Design bottom app bar
A bottom app bar displays navigation and key actions at the bottom of screens.

This particular overload provides ability to specify WindowInsets. Recommended value can be found in AppBarDefaults.bottomAppBarWindowInsets.
It can also optionally display a FloatingActionButton, which is either overlaid on top of the BottomAppBar, or inset, carving a cutout in the BottomAppBar.
See BottomAppBar anatomy for the recommended content depending on the FloatingActionButton position.
Note that when you pass a non-null cutoutShape this makes the AppBar shape concave. The shadows for such shapes will not be drawn on Android versions less than 10.
The LocalContentAlpha inside a BottomAppBar is ContentAlpha.medium - this is the default for trailing and overflow icons. It is recommended that any leading icons at the start of the BottomAppBar, such as a menu icon, use ContentAlpha.high instead. This is demonstrated in the sample below.
Also see BottomNavigation.
import androidx.compose.foundation.layout.Spacer import androidx.compose.material.AppBarDefaults import androidx.compose.material.BottomAppBar import androidx.compose.material.ContentAlpha import androidx.compose.material.Icon import androidx.compose.material.IconButton import androidx.compose.material.LocalContentAlpha import androidx.compose.material.icons.Icons import androidx.compose.material.icons.filled.Favorite import androidx.compose.material.icons.filled.Menu import androidx.compose.runtime.CompositionLocalProvider import androidx.compose.ui.Modifier BottomAppBar(windowInsets = AppBarDefaults.bottomAppBarWindowInsets) { // Leading icons should typically have a high content alpha CompositionLocalProvider(LocalContentAlpha provides ContentAlpha.high) { IconButton(onClick = { /* doSomething() */ }) { Icon(Icons.Filled.Menu, contentDescription = "Localized description") } } // The actions should be at the end of the BottomAppBar. They use the default medium // content alpha provided by BottomAppBar Spacer(Modifier.weight(1f, true)) IconButton(onClick = { /* doSomething() */ }) { Icon(Icons.Filled.Favorite, contentDescription = "Localized description") } IconButton(onClick = { /* doSomething() */ }) { Icon(Icons.Filled.Favorite, contentDescription = "Localized description") } }
| Parameters | |
|---|---|
windowInsets: WindowInsets |
a window insets that app bar will respect. |
modifier: Modifier = Modifier |
The |
backgroundColor: Color = MaterialTheme.colors.primarySurface |
The background color for the BottomAppBar. Use |
contentColor: Color = contentColorFor(backgroundColor) |
The preferred content color provided by this BottomAppBar to its children. Defaults to either the matching content color for |
cutoutShape: Shape? = null |
the shape of the cutout that will be added to the BottomAppBar - this should typically be the same shape used inside the |
elevation: Dp = AppBarDefaults.BottomAppBarElevation |
the elevation of this BottomAppBar. |
contentPadding: PaddingValues = AppBarDefaults.ContentPadding |
the padding applied to the content of this BottomAppBar |
content: @Composable RowScope.() -> Unit |
the content of this BottomAppBar. The default layout here is a |