pref: 弹窗动画

This commit is contained in:
HuanCheng65 2023-10-05 17:25:28 +08:00
parent fe24fe1aca
commit fb77b4b6d2
No known key found for this signature in database
GPG Key ID: 5EC9DD60A32C7360
1 changed files with 6 additions and 20 deletions

View File

@ -9,8 +9,6 @@ import android.view.WindowManager
import androidx.activity.compose.BackHandler import androidx.activity.compose.BackHandler
import androidx.compose.animation.Animatable import androidx.compose.animation.Animatable
import androidx.compose.animation.AnimatedVisibility import androidx.compose.animation.AnimatedVisibility
import androidx.compose.animation.core.Spring
import androidx.compose.animation.core.spring
import androidx.compose.animation.core.tween import androidx.compose.animation.core.tween
import androidx.compose.animation.fadeIn import androidx.compose.animation.fadeIn
import androidx.compose.animation.fadeOut import androidx.compose.animation.fadeOut
@ -158,29 +156,17 @@ private fun DialogFullScreen(
modifier = Modifier.pointerInput(Unit) {}, modifier = Modifier.pointerInput(Unit) {},
visible = isAnimateLayout, visible = isAnimateLayout,
enter = when (properties.direction) { enter = when (properties.direction) {
DirectionState.TOP -> slideInVertically(initialOffsetY = { -it }) DirectionState.TOP -> fadeIn() + slideInVertically(initialOffsetY = { -it })
DirectionState.LEFT -> slideInHorizontally(initialOffsetX = { -it }) DirectionState.LEFT -> fadeIn() + slideInHorizontally(initialOffsetX = { -it })
DirectionState.RIGHT -> slideInHorizontally(initialOffsetX = { it }) DirectionState.RIGHT -> fadeIn() + slideInHorizontally(initialOffsetX = { it })
DirectionState.CENTER -> fadeIn( DirectionState.CENTER -> fadeIn() + scaleIn(initialScale = 0.8F)
animationSpec = spring(stiffness = Spring.StiffnessMediumLow) else -> fadeIn() + slideInVertically(initialOffsetY = { it })
) + scaleIn(
animationSpec = spring(stiffness = Spring.StiffnessMediumLow),
initialScale = 0.8F
)
else -> slideInVertically(initialOffsetY = { it })
}, },
exit = when (properties.direction) { exit = when (properties.direction) {
DirectionState.TOP -> fadeOut() + slideOutVertically(targetOffsetY = { -it }) DirectionState.TOP -> fadeOut() + slideOutVertically(targetOffsetY = { -it })
DirectionState.LEFT -> fadeOut() + slideOutHorizontally(targetOffsetX = { -it }) DirectionState.LEFT -> fadeOut() + slideOutHorizontally(targetOffsetX = { -it })
DirectionState.RIGHT -> fadeOut() + slideOutHorizontally(targetOffsetX = { it }) DirectionState.RIGHT -> fadeOut() + slideOutHorizontally(targetOffsetX = { it })
DirectionState.CENTER -> fadeOut( DirectionState.CENTER -> fadeOut() + scaleOut(targetScale = 0.8F)
animationSpec = spring(stiffness = Spring.StiffnessMediumLow)
) + scaleOut(
animationSpec = spring(stiffness = Spring.StiffnessMediumLow),
targetScale = 0.8F
)
else -> fadeOut() + slideOutVertically(targetOffsetY = { it }) else -> fadeOut() + slideOutVertically(targetOffsetY = { it })
} }
) { ) {