pref: 弹窗动画
This commit is contained in:
parent
fe24fe1aca
commit
fb77b4b6d2
|
|
@ -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 })
|
||||||
}
|
}
|
||||||
) {
|
) {
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue