From 21bb7394994ed72537e17eb5e1fea33fdfb6330e Mon Sep 17 00:00:00 2001 From: acclorite Date: Mon, 10 Jun 2024 00:01:10 +0300 Subject: [PATCH] Transitions: SlidingTransition is now based on constant value(animation is the same for all items now) + Replaced AnimatedVisibility with SlidingTransition in LicenseInfoScreen. (v1.0.1) --- .../nested/license_info/LicenseInfoScreen.kt | 13 ++------- .../book_story/presentation/ui/Transitions.kt | 27 ++++++++----------- 2 files changed, 13 insertions(+), 27 deletions(-) diff --git a/app/src/main/java/ua/acclorite/book_story/presentation/screens/about/nested/license_info/LicenseInfoScreen.kt b/app/src/main/java/ua/acclorite/book_story/presentation/screens/about/nested/license_info/LicenseInfoScreen.kt index 580a3ace..fc98ec28 100644 --- a/app/src/main/java/ua/acclorite/book_story/presentation/screens/about/nested/license_info/LicenseInfoScreen.kt +++ b/app/src/main/java/ua/acclorite/book_story/presentation/screens/about/nested/license_info/LicenseInfoScreen.kt @@ -1,11 +1,6 @@ package ua.acclorite.book_story.presentation.screens.about.nested.license_info import android.widget.Toast -import androidx.compose.animation.core.tween -import androidx.compose.animation.fadeIn -import androidx.compose.animation.fadeOut -import androidx.compose.animation.slideInVertically -import androidx.compose.animation.slideOutVertically import androidx.compose.foundation.background import androidx.compose.foundation.clickable import androidx.compose.foundation.layout.Arrangement @@ -47,7 +42,6 @@ import androidx.compose.ui.text.style.TextOverflow import androidx.compose.ui.unit.dp import androidx.hilt.navigation.compose.hiltViewModel import ua.acclorite.book_story.R -import ua.acclorite.book_story.presentation.components.CustomAnimatedVisibility import ua.acclorite.book_story.presentation.components.CustomIconButton import ua.acclorite.book_story.presentation.components.GoBackButton import ua.acclorite.book_story.presentation.components.collapsibleUntilExitScrollBehaviorWithLazyListState @@ -57,6 +51,7 @@ import ua.acclorite.book_story.presentation.data.Navigator import ua.acclorite.book_story.presentation.screens.about.nested.license_info.data.LicenseInfoEvent import ua.acclorite.book_story.presentation.screens.about.nested.license_info.data.LicenseInfoState import ua.acclorite.book_story.presentation.screens.about.nested.license_info.data.LicenseInfoViewModel +import ua.acclorite.book_story.presentation.ui.SlidingTransition @Composable fun LicenseInfoScreenRoot() { @@ -190,12 +185,8 @@ private fun LicenseInfoScreen( .padding(vertical = 6.dp, horizontal = 12.dp) ) - CustomAnimatedVisibility( + SlidingTransition( visible = showed.value && license.licenseContent?.isNotBlank() == true, - enter = slideInVertically(tween(300)) { -50 } + - fadeIn(tween(300)), - exit = slideOutVertically(tween(200)) { -30 } + - fadeOut(tween(150)), modifier = Modifier.padding(horizontal = 8.dp) ) { Column { diff --git a/app/src/main/java/ua/acclorite/book_story/presentation/ui/Transitions.kt b/app/src/main/java/ua/acclorite/book_story/presentation/ui/Transitions.kt index f02bb789..cc1440cd 100644 --- a/app/src/main/java/ua/acclorite/book_story/presentation/ui/Transitions.kt +++ b/app/src/main/java/ua/acclorite/book_story/presentation/ui/Transitions.kt @@ -10,7 +10,10 @@ import androidx.compose.animation.slideOutHorizontally import androidx.compose.animation.slideOutVertically import androidx.compose.runtime.Composable import androidx.compose.ui.Modifier +import androidx.compose.ui.platform.LocalDensity +import androidx.compose.ui.unit.dp import ua.acclorite.book_story.presentation.components.CustomAnimatedVisibility +import kotlin.math.roundToInt object Transitions { val DefaultTransitionIn = fadeIn(tween(300)) @@ -70,24 +73,16 @@ fun SlidingTransition( modifier: Modifier = Modifier, content: @Composable () -> Unit ) { + val density = LocalDensity.current CustomAnimatedVisibility( visible = visible, modifier = modifier, - enter = slideInVertically(tween(300)) { -it / 10 } + - fadeIn(tween(300)), - exit = slideOutVertically(tween(150)) { -it / 10 } + - fadeOut(tween(100)), + enter = slideInVertically(tween(300)) { + with(density) { -12.dp.toPx() }.roundToInt() + } + fadeIn(tween(300)), + exit = slideOutVertically(tween(150)) { + with(density) { -10.dp.toPx() }.roundToInt() + } + fadeOut(tween(100)), content = content ) -} - - - - - - - - - - - +} \ No newline at end of file