AppCard

Composable Component

Opinionated Wear Material Card that offers a specific 5 slot layout to show information about an application, e.g. a notification. AppCards are designed to show interactive elements from multiple applications. They will typically be used by the system UI, e.g. for showing a list of notifications from different applications. However it could also be adapted by individual application developers to show information about different parts of their application.

Android
@Composable
public fun AppCard(
    onClick: () -> Unit,
    appName: @Composable RowScope.() -> Unit,
    time: @Composable RowScope.() -> Unit,
    title: @Composable RowScope.() -> Unit,
    modifier: Modifier = Modifier,
    enabled: Boolean = true,
    appImage: @Composable (RowScope.() -> Unit)? = null,
    backgroundPainter: Painter = CardDefaults.cardBackgroundPainter(),
    contentColor: Color = MaterialTheme.colors.onSurfaceVariant,
    appColor: Color = contentColor,
    timeColor: Color = contentColor,
    titleColor: Color = MaterialTheme.colors.onSurface,
    content: @Composable ColumnScope.() -> Unit,
)

Parameters

onClickWill be called when the user clicks the card
appNameA slot for displaying the application name, expected to be a single line of start aligned text of Typography.title3
timeA slot for displaying the time relevant to the contents of the card, expected to be a short piece of end aligned text.
titleA slot for displaying the title of the card, expected to be one or two lines of start aligned text of Typography.button
modifierModifier to be applied to the card
enabledControls the enabled state of the card. When false, this card will not be clickable and there will be no ripple effect on click. Wear cards do not have any specific elevation or alpha differences when not enabled - they are simply not clickable.
appImageA slot for a small (CardDefaults.AppImageSizexCardDefaults.AppImageSize ) Image associated with the application.
backgroundPainterA painter used to paint the background of the card. A card will normally have a gradient background. Use CardDefaults.cardBackgroundPainter() to obtain an appropriate painter
contentColorThe default color to use for content() slot unless explicitly set.
appColorThe default color to use for appName() and appImage() slots unless explicitly set.
timeColorThe default color to use for time() slot unless explicitly set.
titleColorThe default color to use for title() slot unless explicitly set.
contentSlot for composable body content displayed on the Card