From 62eeca017ff82182a78d19a67b8e730e197474f2 Mon Sep 17 00:00:00 2001 From: acclorite Date: Fri, 17 May 2024 18:17:08 +0300 Subject: [PATCH] Dialogs: Animating dialog size whenever content size changes(either LazyColumn's items or customContent) (v1.0.1) --- .../custom_dialog/CustomDialogWithContent.kt | 4 ++++ .../custom_dialog/CustomDialogWithLazyColumn.kt | 10 +++++++++- 2 files changed, 13 insertions(+), 1 deletion(-) diff --git a/app/src/main/java/ua/acclorite/book_story/presentation/components/custom_dialog/CustomDialogWithContent.kt b/app/src/main/java/ua/acclorite/book_story/presentation/components/custom_dialog/CustomDialogWithContent.kt index b68ce236..19f8ca66 100644 --- a/app/src/main/java/ua/acclorite/book_story/presentation/components/custom_dialog/CustomDialogWithContent.kt +++ b/app/src/main/java/ua/acclorite/book_story/presentation/components/custom_dialog/CustomDialogWithContent.kt @@ -1,5 +1,8 @@ package ua.acclorite.book_story.presentation.components.custom_dialog +import androidx.compose.animation.animateContentSize +import androidx.compose.animation.core.Spring +import androidx.compose.animation.core.spring import androidx.compose.foundation.background import androidx.compose.foundation.layout.Column import androidx.compose.foundation.layout.ColumnScope @@ -90,6 +93,7 @@ fun CustomDialogWithContent( .statusBarsPadding() .clip(MaterialTheme.shapes.extraLarge) .background(MaterialTheme.colorScheme.surfaceContainerHigh) + .animateContentSize(animationSpec = spring(stiffness = Spring.StiffnessMediumLow)) .padding(top = 24.dp, bottom = 12.dp) ) { if (drawableIcon != null) { diff --git a/app/src/main/java/ua/acclorite/book_story/presentation/components/custom_dialog/CustomDialogWithLazyColumn.kt b/app/src/main/java/ua/acclorite/book_story/presentation/components/custom_dialog/CustomDialogWithLazyColumn.kt index 3b44bd6c..369ec95b 100644 --- a/app/src/main/java/ua/acclorite/book_story/presentation/components/custom_dialog/CustomDialogWithLazyColumn.kt +++ b/app/src/main/java/ua/acclorite/book_story/presentation/components/custom_dialog/CustomDialogWithLazyColumn.kt @@ -1,5 +1,8 @@ package ua.acclorite.book_story.presentation.components.custom_dialog +import androidx.compose.animation.animateContentSize +import androidx.compose.animation.core.Spring +import androidx.compose.animation.core.spring import androidx.compose.foundation.background import androidx.compose.foundation.layout.Column import androidx.compose.foundation.layout.Row @@ -91,6 +94,7 @@ fun CustomDialogWithLazyColumn( .statusBarsPadding() .clip(MaterialTheme.shapes.extraLarge) .background(MaterialTheme.colorScheme.surfaceContainerHigh) + .animateContentSize(animationSpec = spring(stiffness = Spring.StiffnessMediumLow)) .padding(top = 24.dp, bottom = 12.dp) ) { if (drawableIcon != null) { @@ -155,7 +159,11 @@ fun CustomDialogWithLazyColumn( items() item { - Column(modifier = Modifier.fillMaxWidth()) { + Column( + modifier = Modifier + .animateItem() + .fillMaxWidth() + ) { Spacer(modifier = Modifier.height(16.dp)) Row( modifier = Modifier