如何在 compose 中控制 AnimatedVisibility 的方向?

Mr.*_*one 7 android kotlin android-jetpack-compose

我在我的项目中使用了 compose AnimatedVisibility,我想将 AnimatedVisibility 的方向更改为slideInVertically()从下到上和slideOutVertically()从上到下。如何才能做到这一点?

 AnimatedVisibility(
   visible = state.value,
   enter = slideInVertically(),
   exit = slideOutVertically())
    {

        // ...

    }
Run Code Online (Sandbox Code Playgroud)

Abh*_*bhi 15

使用initialOffsetYtargetOffsetY像这样改变动画方向。

enter = slideInVertically(
    initialOffsetY = {
        it / 2
    },
),
exit = slideOutVertically(
    targetOffsetY = {
        it / 2
    },
),
Run Code Online (Sandbox Code Playgroud)

来源: EnterExitTransition.kt源代码

这会在内容中垂直滑动,从 initialOffsetY 中定义的起始偏移量到 0(以像素为单位)。可以通过配置initialOffsetY来控制滑动的方向。正的初始偏移意味着向上滑动,而负值则意味着向下滑动内容。

这会将内容垂直滑出,从 0 到 targetOffsetY 中定义的目标偏移量(以像素为单位)。滑出的方向可以通过配置targetOffsetY来控制。正目标偏移意味着向下滑动,而负值则意味着向上滑动内容。