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.compose.animation.Animatable
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.fadeIn
import androidx.compose.animation.fadeOut
@ -158,29 +156,17 @@ private fun DialogFullScreen(
modifier = Modifier.pointerInput(Unit) {},
visible = isAnimateLayout,
enter = when (properties.direction) {
DirectionState.TOP -> slideInVertically(initialOffsetY = { -it })
DirectionState.LEFT -> slideInHorizontally(initialOffsetX = { -it })
DirectionState.RIGHT -> slideInHorizontally(initialOffsetX = { it })
DirectionState.CENTER -> fadeIn(
animationSpec = spring(stiffness = Spring.StiffnessMediumLow)
) + scaleIn(
animationSpec = spring(stiffness = Spring.StiffnessMediumLow),
initialScale = 0.8F
)
else -> slideInVertically(initialOffsetY = { it })
DirectionState.TOP -> fadeIn() + slideInVertically(initialOffsetY = { -it })
DirectionState.LEFT -> fadeIn() + slideInHorizontally(initialOffsetX = { -it })
DirectionState.RIGHT -> fadeIn() + slideInHorizontally(initialOffsetX = { it })
DirectionState.CENTER -> fadeIn() + scaleIn(initialScale = 0.8F)
else -> fadeIn() + slideInVertically(initialOffsetY = { it })
},
exit = when (properties.direction) {
DirectionState.TOP -> fadeOut() + slideOutVertically(targetOffsetY = { -it })
DirectionState.LEFT -> fadeOut() + slideOutHorizontally(targetOffsetX = { -it })
DirectionState.RIGHT -> fadeOut() + slideOutHorizontally(targetOffsetX = { it })
DirectionState.CENTER -> fadeOut(
animationSpec = spring(stiffness = Spring.StiffnessMediumLow)
) + scaleOut(
animationSpec = spring(stiffness = Spring.StiffnessMediumLow),
targetScale = 0.8F
)
DirectionState.CENTER -> fadeOut() + scaleOut(targetScale = 0.8F)
else -> fadeOut() + slideOutVertically(targetOffsetY = { it })
}
) {