From b5d99916a11169d301cbab876197602265a5902c Mon Sep 17 00:00:00 2001 From: acclorite Date: Fri, 31 May 2024 21:16:57 +0300 Subject: [PATCH] Removed animateContentSize(caused bugs) (v1.0.1) --- .../custom_dialog/CustomDialogWithContent.kt | 24 ++++++++-------- .../CustomDialogWithLazyColumn.kt | 28 +++++++++---------- 2 files changed, 24 insertions(+), 28 deletions(-) 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 19f8ca66..0c8aa962 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,8 +1,5 @@ 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 @@ -77,6 +74,16 @@ fun CustomDialogWithContent( var actionClicked by remember { mutableStateOf(false) } BasicAlertDialog( + modifier = modifier + .fillMaxWidth() + .navigationBarsPadding() + .statusBarsPadding() + .clip(MaterialTheme.shapes.extraLarge) + .background( + MaterialTheme.colorScheme.surfaceContainerHigh, + MaterialTheme.shapes.extraLarge + ) + .padding(top = 24.dp, bottom = 12.dp), onDismissRequest = { onDismiss() }, properties = DialogProperties( dismissOnBackPress = !actionClicked, @@ -86,16 +93,7 @@ fun CustomDialogWithContent( (LocalView.current.parent as DialogWindowProvider).window.setDimAmount( backgroundTransparency ) - Column( - modifier = modifier - .fillMaxWidth() - .navigationBarsPadding() - .statusBarsPadding() - .clip(MaterialTheme.shapes.extraLarge) - .background(MaterialTheme.colorScheme.surfaceContainerHigh) - .animateContentSize(animationSpec = spring(stiffness = Spring.StiffnessMediumLow)) - .padding(top = 24.dp, bottom = 12.dp) - ) { + Column { if (drawableIcon != null) { Icon( painter = drawableIcon, 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 369ec95b..5ec0abec 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,10 +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.ExperimentalLayoutApi import androidx.compose.foundation.layout.Row import androidx.compose.foundation.layout.Spacer import androidx.compose.foundation.layout.fillMaxWidth @@ -59,7 +57,7 @@ import ua.acclorite.book_story.R * @param withDivider Should divider be shown or not. * @param items The items of this dialog, use items(..) { .. } or item { .. }. */ -@OptIn(ExperimentalMaterial3Api::class) +@OptIn(ExperimentalMaterial3Api::class, ExperimentalLayoutApi::class) @Composable fun CustomDialogWithLazyColumn( modifier: Modifier = Modifier, @@ -78,6 +76,16 @@ fun CustomDialogWithLazyColumn( ) { var actionClicked by remember { mutableStateOf(false) } BasicAlertDialog( + modifier = modifier + .fillMaxWidth() + .navigationBarsPadding() + .statusBarsPadding() + .clip(MaterialTheme.shapes.extraLarge) + .background( + MaterialTheme.colorScheme.surfaceContainerHigh, + MaterialTheme.shapes.extraLarge + ) + .padding(top = 24.dp, bottom = 12.dp), onDismissRequest = { onDismiss() }, properties = DialogProperties( dismissOnBackPress = !actionClicked, @@ -87,16 +95,7 @@ fun CustomDialogWithLazyColumn( (LocalView.current.parent as DialogWindowProvider).window.setDimAmount( backgroundTransparency ) - Column( - modifier = modifier - .fillMaxWidth() - .navigationBarsPadding() - .statusBarsPadding() - .clip(MaterialTheme.shapes.extraLarge) - .background(MaterialTheme.colorScheme.surfaceContainerHigh) - .animateContentSize(animationSpec = spring(stiffness = Spring.StiffnessMediumLow)) - .padding(top = 24.dp, bottom = 12.dp) - ) { + Column { if (drawableIcon != null) { Icon( painter = drawableIcon, @@ -161,7 +160,6 @@ fun CustomDialogWithLazyColumn( item { Column( modifier = Modifier - .animateItem() .fillMaxWidth() ) { Spacer(modifier = Modifier.height(16.dp))