Chip
Functions summary
Unit |
@ComposableBase level Wear Material |
Unit |
@ComposableWear Material |
Functions
Chip
@Composable
fun Chip(
onClick: () -> Unit,
colors: ChipColors,
border: ChipBorder,
modifier: Modifier = Modifier,
enabled: Boolean = true,
contentPadding: PaddingValues = ChipDefaults.ContentPadding,
shape: Shape = MaterialTheme.shapes.large,
interactionSource: MutableInteractionSource? = null,
role: Role? = Role.Button,
content: @Composable RowScope.() -> Unit
): Unit
Base level Wear Material Chip that offers a single slot to take any content.
Is used as the container for more opinionated Chip components that take specific content such as icons and labels.
The Chip is Stadium shaped and has a max height designed to take no more than two lines of text. The Chip can have an icon or image horizontally parallel to the two lines of text. With localisation and/or large font sizes, the Chip height adjusts to accommodate the contents.
The Chip can have different styles with configurable content colors, background colors including gradients, these are provided by ChipColors implementations.
The recommended set of ChipColors styles can be obtained from ChipDefaults, e.g. ChipDefaults.primaryChipColors to get a color scheme for a primary Chip which by default will have a solid background of Colors.primary and content color of Colors.onPrimary.
Chips can be enabled or disabled. A disabled chip will not respond to click events.
For more information, see the Chips guide.
| Parameters | |
|---|---|
onClick: () -> Unit |
Will be called when the user clicks the chip |
colors: ChipColors |
|
border: ChipBorder |
|
modifier: Modifier = Modifier |
Modifier to be applied to the chip |
enabled: Boolean = true |
Controls the enabled state of the chip. When |
contentPadding: PaddingValues = ChipDefaults.ContentPadding |
The spacing values to apply internally between the container and the content |
shape: Shape = MaterialTheme.shapes.large |
Defines the chip's shape. It is strongly recommended to use the default as this shape is a key characteristic of the Wear Material Theme |
interactionSource: MutableInteractionSource? = null |
an optional hoisted |
role: Role? = Role.Button |
The type of user interface element. Accessibility services might use this to describe the element or do customizations |
content: @Composable RowScope.() -> Unit |
Slot for composable body content displayed on the Chip |
Chip
@Composable
fun Chip(
label: @Composable RowScope.() -> Unit,
onClick: () -> Unit,
modifier: Modifier = Modifier,
secondaryLabel: (@Composable RowScope.() -> Unit)? = null,
icon: (@Composable BoxScope.() -> Unit)? = null,
colors: ChipColors = ChipDefaults.primaryChipColors(),
enabled: Boolean = true,
interactionSource: MutableInteractionSource? = null,
contentPadding: PaddingValues = ChipDefaults.ContentPadding,
shape: Shape = MaterialTheme.shapes.large,
border: ChipBorder = ChipDefaults.chipBorder()
): Unit
Wear Material Chip that offers three slots and a specific layout for an icon, label and secondaryLabel. The icon and secondaryLabel are optional. The items are laid out with the icon, if provided, at the start of a row, with a column next containing the two label slots.
The Chip is Stadium shaped and has a max height designed to take no more than two lines of text. If no secondary label is provided then the label can be two lines of text. The label and secondary label should be consistently aligned. With localisation and/or large font sizes, the Chip height adjusts to accommodate the contents.
If a icon is provided then the labels should be "start" aligned, e.g. left aligned in ltr so that the text starts next to the icon.
The Chip can have different styles with configurable content colors, background colors including gradients, these are provided by ChipColors implementations.
The recommended set of ChipColors styles can be obtained from ChipDefaults, e.g. ChipDefaults.primaryChipColors to get a color scheme for a primary Chip which by default will have a solid background of Colors.primary and content color of Colors.onPrimary.
Chips can be enabled or disabled. A disabled chip will not respond to click events.
Example of a Chip with icon and a label only with longer text:
import androidx.compose.foundation.layout.size import androidx.compose.foundation.layout.wrapContentSize import androidx.compose.ui.Alignment import androidx.compose.ui.Modifier import androidx.compose.ui.res.painterResource import androidx.compose.ui.text.style.TextOverflow import androidx.wear.compose.material.Chip import androidx.wear.compose.material.ChipDefaults import androidx.wear.compose.material.Icon import androidx.wear.compose.material.Text Chip( onClick = { /* Do something */ }, enabled = true, // Primary label can have up to 3 lines of text label = { Text( text = "Main label can span up to 3 lines", maxLines = 3, overflow = TextOverflow.Ellipsis, ) }, icon = { Icon( painter = painterResource(id = R.drawable.ic_airplanemode_active_24px), contentDescription = "airplane", modifier = Modifier.size(ChipDefaults.IconSize).wrapContentSize(align = Alignment.Center), ) }, )
Example of a Chip with icon, label and secondary label:
import androidx.compose.foundation.layout.size import androidx.compose.foundation.layout.wrapContentSize import androidx.compose.ui.Alignment import androidx.compose.ui.Modifier import androidx.compose.ui.res.painterResource import androidx.compose.ui.text.style.TextOverflow import androidx.wear.compose.material.Chip import androidx.wear.compose.material.ChipDefaults import androidx.wear.compose.material.Icon import androidx.wear.compose.material.Text Chip( onClick = { /* Do something */ }, enabled = true, // Primary label has maximum 3 lines, Secondary label has maximum 2 lines. label = { Text(text = "Main label", maxLines = 3, overflow = TextOverflow.Ellipsis) }, secondaryLabel = { Text(text = "secondary label", maxLines = 2, overflow = TextOverflow.Ellipsis) }, icon = { Icon( painter = painterResource(id = R.drawable.ic_airplanemode_active_24px), contentDescription = "airplane", modifier = Modifier.size(ChipDefaults.IconSize).wrapContentSize(align = Alignment.Center), ) }, )
For more information, see the Chips guide.
| Parameters | |
|---|---|
label: @Composable RowScope.() -> Unit |
A slot for providing the chip's main label. The contents are expected to be text which is "start" aligned if there is an icon preset and "start" or "center" aligned if not. |
onClick: () -> Unit |
Will be called when the user clicks the chip |
modifier: Modifier = Modifier |
Modifier to be applied to the chip |
secondaryLabel: (@Composable RowScope.() -> Unit)? = null |
A slot for providing the chip's secondary label. The contents are expected to be text which is "start" aligned if there is an icon preset and "start" or "center" aligned if not. label and secondaryLabel contents should be consistently aligned. |
icon: (@Composable BoxScope.() -> Unit)? = null |
A slot for providing the chip's icon. The contents are expected to be a horizontally and vertically aligned icon of size |
colors: ChipColors = ChipDefaults.primaryChipColors() |
|
enabled: Boolean = true |
Controls the enabled state of the chip. When |
interactionSource: MutableInteractionSource? = null |
an optional hoisted |
contentPadding: PaddingValues = ChipDefaults.ContentPadding |
The spacing values to apply internally between the container and the content |
shape: Shape = MaterialTheme.shapes.large |
Defines the chip's shape. It is strongly recommended to use the default as this shape is a key characteristic of the Wear Material Theme |
border: ChipBorder = ChipDefaults.chipBorder() |
|