AlertDialogContent
This `AlertDialogContent` overload provides the content for an `AlertDialog` with 2 buttons to
AlertDialogContent
Composable Component
This AlertDialogContent overload provides the content for an AlertDialog with 2 buttons to
confirm or dismiss an action. Prefer using AlertDialog directly, which provides built-in
animations and a streamlined API. This composable may be used to provide the content for an alert
dialog if custom animations are required.
Android
@Composable
public fun AlertDialogContent(
confirmButton: @Composable RowScope.() -> Unit,
title: @Composable () -> Unit,
dismissButton: @Composable RowScope.() -> Unit,
modifier: Modifier = Modifier,
icon: @Composable (() -> Unit)? = null,
text: @Composable (() -> Unit)? = null,
verticalArrangement: Arrangement.Vertical = AlertDialogDefaults.VerticalArrangement,
contentPadding: PaddingValues =
if (icon != null) {
AlertDialogDefaults.confirmDismissWithIconContentPadding()
} else {
AlertDialogDefaults.confirmDismissContentPadding()
},
content: (ScalingLazyListScope.() -> Unit)? = null,
)
Parameters
| confirmButton | A slot for a Button indicating positive sentiment. Clicking the button must remove the dialog from the composition hierarchy. It's recommended to use AlertDialogDefaults.ConfirmButton in this slot with onClick callback. |
| title | A slot for displaying the title of the dialog. Title should contain a summary of the dialog's purpose or content and should not exceed 3 lines of text. By default, TextOverflow.Ellipsis will be applied when text exceeds 3 lines. |
| dismissButton | A slot for a Button indicating negative sentiment. Clicking the button must remove the dialog from the composition hierarchy. It's recommended to use AlertDialogDefaults.DismissButton in this slot with onClick callback. |
| modifier | Modifier to be applied to the dialog content. |
| icon | Optional slot for an icon to be shown at the top of the dialog. |
| text | Optional slot for displaying the message of the dialog below the title. Should contain additional text that presents further details about the dialog's purpose if the title is insufficient. |
| verticalArrangement | The vertical arrangement of the dialog's children. There is a default padding between icon, title, and text, which will be added to the spacing specified in this verticalArrangement parameter. |
| contentPadding | The padding to apply around the entire dialog's contents. It is recommended to use the defaults, which adjust to reduce the top padding when an icon is present. |
| content | A slot for additional content, displayed within a scrollable ScalingLazyColumn. |
Android
@Composable
public fun AlertDialogContent(
confirmButton: @Composable RowScope.() -> Unit,
title: @Composable () -> Unit,
dismissButton: @Composable RowScope.() -> Unit,
transformationSpec: TransformationSpec,
modifier: Modifier = Modifier,
icon: @Composable (() -> Unit)? = null,
text: @Composable (() -> Unit)? = null,
verticalArrangement: Arrangement.Vertical = AlertDialogDefaults.VerticalArrangement,
contentPadding: PaddingValues =
if (icon != null) {
AlertDialogDefaults.confirmDismissWithIconContentPadding()
} else {
AlertDialogDefaults.confirmDismissContentPadding()
},
content: (TransformingLazyColumnScope.() -> Unit)? = null,
)
Parameters
| confirmButton | A slot for a Button indicating positive sentiment. Clicking the button must remove the dialog from the composition hierarchy. It's recommended to use AlertDialogDefaults.ConfirmButton in this slot with onClick callback. |
| title | A slot for displaying the title of the dialog. Title should contain a summary of the dialog's purpose or content and should not exceed 3 lines of text. By default, TextOverflow.Ellipsis will be applied when text exceeds 3 lines. |
| dismissButton | A slot for a Button indicating negative sentiment. Clicking the button must remove the dialog from the composition hierarchy. It's recommended to use AlertDialogDefaults.DismissButton in this slot with onClick callback. |
| transformationSpec | A spec that defines how items inside the TransformingLazyColumn transform and animate as they are scrolled. It is recommended to create a spec using rememberTransformationSpec. This parameter is the key differentiator from the standard AlertDialog overload, which uses a ScalingLazyColumn without per-item customizable animations. The provided transformationSpec is automatically applied only to the dialog's standard components (title, text, and buttons), while additional items in content lambda need to be handled manually, by applying a TransformationSpec to each of them. First item has a fixed spec, with a reduced transition area, so that the top item does not appear scaled or faded when the dialog is initially displayed. |
| modifier | Modifier to be applied to the dialog content. |
| icon | Optional slot for an icon to be shown at the top of the dialog. |
| text | Optional slot for displaying the message of the dialog below the title. Should contain additional text that presents further details about the dialog's purpose if the title is insufficient. |
| verticalArrangement | The vertical arrangement of the dialog's children. There is a default padding between icon, title, and text, which will be added to the spacing specified in this verticalArrangement parameter. |
| contentPadding | The padding to apply around the entire dialog's contents. It is recommended to use the defaults, which adjust to reduce the top padding when an icon is present. |
| content | A slot for additional content, displayed within a scrollable TransformingLazyColumn. To ensure that your custom items animate consistently with the rest of the dialog, we recommend applying a TransformationSpec to each of them. |
Android
@Composable
public fun AlertDialogContent(
title: @Composable () -> Unit,
modifier: Modifier = Modifier,
icon: @Composable (() -> Unit)? = null,
text: @Composable (() -> Unit)? = null,
verticalArrangement: Arrangement.Vertical = AlertDialogDefaults.VerticalArrangement,
contentPadding: PaddingValues =
if (icon != null) {
AlertDialogDefaults.contentWithIconPadding()
} else {
AlertDialogDefaults.contentPadding()
},
content: (ScalingLazyListScope.() -> Unit)? = null,
)
Parameters
| title | A slot for displaying the title of the dialog. Title should contain a summary of the dialog's purpose or content and should not exceed 3 lines of text. By default, TextOverflow.Ellipsis will be applied when text exceeds 3 lines. |
| modifier | Modifier to be applied to the dialog content. |
| icon | Optional slot for an icon to be shown at the top of the dialog. |
| text | Optional slot for displaying the message of the dialog below the title. Should contain additional text that presents further details about the dialog's purpose if the title is insufficient. |
| verticalArrangement | The vertical arrangement of the dialog's children. There is a default padding between icon, title, and text, which will be added to the spacing specified in this verticalArrangement parameter. |
| contentPadding | The padding to apply around the entire dialog's contents. It is recommended to use the defaults, which adjust to reduce the top padding when an icon is present. |
| content | A slot for additional content, displayed within a scrollable ScalingLazyColumn. |
Android
@Composable
public fun AlertDialogContent(
title: @Composable () -> Unit,
transformationSpec: TransformationSpec,
modifier: Modifier = Modifier,
icon: @Composable (() -> Unit)? = null,
text: @Composable (() -> Unit)? = null,
verticalArrangement: Arrangement.Vertical = AlertDialogDefaults.VerticalArrangement,
contentPadding: @Composable (Boolean) -> PaddingValues = { isScrollable: Boolean ->
if (icon != null) {
AlertDialogDefaults.buttonStackWithIconContentPadding(isScrollable)
} else {
AlertDialogDefaults.buttonStackContentPadding(isScrollable)
}
},
content: (TransformingLazyColumnScope.() -> Unit)? = null,
)
Parameters
| title | A slot for displaying the title of the dialog. Title should contain a summary of the dialog's purpose or content and should not exceed 3 lines of text. By default, TextOverflow.Ellipsis will be applied when text exceeds 3 lines. |
| transformationSpec | A spec that defines how items inside the TransformingLazyColumn transform and animate as they are scrolled. It is recommended to create a spec using rememberTransformationSpec. This parameter is the key differentiator from the standard AlertDialog overload, which uses a ScalingLazyColumn without per-item customizable animations. The provided transformationSpec is automatically applied only to the dialog's standard components (title, text, and buttons), while additional items in content lambda need to be handled manually, by applying a TransformationSpec to each of them. First item has a fixed spec, with a reduced transition area, so that the top item does not appear scaled or faded when the dialog is initially displayed. |
| modifier | Modifier to be applied to the dialog content. |
| icon | Optional slot for an icon to be shown at the top of the dialog. |
| text | Optional slot for displaying the message of the dialog below the title. Should contain additional text that presents further details about the dialog's purpose if the title is insufficient. |
| verticalArrangement | The vertical arrangement of the dialog's children. There is a default padding between icon, title, and text, which will be added to the spacing specified in this verticalArrangement parameter. |
| contentPadding | The padding to apply around the entire dialog's contents. It is recommended to use the defaults, which adjust to reduce the top padding when an icon is present. |
| content | A slot for additional content, displayed within a scrollable TransformingLazyColumn. To ensure that your custom items animate consistently with the rest of the dialog, we recommend applying a TransformationSpec to each of them. |
Android
@Composable
public fun AlertDialogContent(
edgeButton: (@Composable BoxScope.() -> Unit),
title: @Composable () -> Unit,
modifier: Modifier = Modifier,
icon: @Composable (() -> Unit)? = null,
text: @Composable (() -> Unit)? = null,
verticalArrangement: Arrangement.Vertical = AlertDialogDefaults.VerticalArrangement,
contentPadding: PaddingValues =
if (icon != null) {
AlertDialogDefaults.contentWithIconPadding()
} else {
AlertDialogDefaults.contentPadding()
},
content: (ScalingLazyListScope.() -> Unit)? = null,
)
Parameters
| edgeButton | Slot for an EdgeButton indicating positive sentiment. Clicking the button must remove the dialog from the composition hierarchy. It's recommended to use AlertDialogDefaults.EdgeButton in this slot with onClick callback. Note that when using an EdgeButton which is not Medium size, the contentPadding parameters should be specified. |
| title | A slot for displaying the title of the dialog. Title should contain a summary of the dialog's purpose or content and should not exceed 3 lines of text. By default, TextOverflow.Ellipsis will be applied when text exceeds 3 lines. |
| modifier | Modifier to be applied to the dialog content. |
| icon | Optional slot for an icon to be shown at the top of the dialog. |
| text | Optional slot for displaying the message of the dialog below the title. Should contain additional text that presents further details about the dialog's purpose if the title is insufficient. |
| verticalArrangement | The vertical arrangement of the dialog's children. There is a default padding between icon, title, and text, which will be added to the spacing specified in this verticalArrangement parameter. |
| contentPadding | The padding to apply around the entire dialog's contents. Bottom padding will be ignored and default spacing for the EdgeButton will be used. It is recommended to use the defaults, which adjust to reduce the top padding when an icon is present. |
| content | A slot for additional content, displayed within a scrollable ScalingLazyColumn. |
Android
@Composable
public fun AlertDialogContent(
edgeButton: (@Composable BoxScope.() -> Unit),
title: @Composable () -> Unit,
transformationSpec: TransformationSpec,
modifier: Modifier = Modifier,
icon: @Composable (() -> Unit)? = null,
text: @Composable (() -> Unit)? = null,
verticalArrangement: Arrangement.Vertical = AlertDialogDefaults.VerticalArrangement,
contentPadding: PaddingValues =
if (icon != null) {
AlertDialogDefaults.contentWithIconPadding()
} else {
AlertDialogDefaults.contentPadding()
},
content: (TransformingLazyColumnScope.() -> Unit)? = null,
)
Parameters
| edgeButton | Slot for an EdgeButton indicating positive sentiment. Clicking the button must remove the dialog from the composition hierarchy. It's recommended to use AlertDialogDefaults.EdgeButton in this slot with onClick callback. Note that when using an EdgeButton which is not Medium size, the contentPadding parameters should be specified. |
| title | A slot for displaying the title of the dialog. Title should contain a summary of the dialog's purpose or content and should not exceed 3 lines of text. By default, TextOverflow.Ellipsis will be applied when text exceeds 3 lines. |
| transformationSpec | A spec that defines how components inside the TransformingLazyColumn transform and animate as they are scrolled. It is recommended to create a spec using rememberTransformationSpec. The provided transformationSpec is automatically applied only to the dialog's standard components (icon, title, text, and buttons). This parameter is the key differentiator from the standard AlertDialog overload, which uses a ScalingLazyColumn with automatic non-customizable animations. |
| modifier | Modifier to be applied to the dialog content. |
| icon | Optional slot for an icon to be shown at the top of the dialog. |
| text | Optional slot for displaying the message of the dialog below the title. Should contain additional text that presents further details about the dialog's purpose if the title is insufficient. |
| verticalArrangement | The vertical arrangement of the dialog's children. There is a default padding between icon, title, and text, which will be added to the spacing specified in this verticalArrangement parameter. |
| contentPadding | The padding to apply around the entire dialog's contents. Bottom padding will be ignored and default spacing for the EdgeButton will be used. It is recommended to use the defaults, which adjust to reduce the top padding when an icon is present. |
| content | A slot for additional content, displayed within a scrollable TransformingLazyColumn.To ensure that your custom items animate consistently with the rest of the dialog, we recommend applying a TransformationSpec to each of them. |
Create your own Component Library
Material Components are meant to be used as is and they do not allow customizations. To build your own Jetpack Compose component library use Compose Unstyled