如何使用 Jetpack Compose 中的 AnimatedVisibility 选择动画发生的位置?

How do I choose the place the animation happens from using AnimatedVisibility in Jetpack Compose?

我想使用 AnimatedVisibility 显示卡片:

AnimatedVisibility(
    visible = isVisible.value,
    enter = expandIn(expandFrom = Alignment.TopEnd),
    exit = shrinkOut(shrinkTowards = Alignment.TopEnd)
) {
      Card(...) { ... }
}

(卡片也被限制在另一个视图的顶端角,但我认为这不重要,因为那个视图是静态的。)

它没有像我预期的那样工作。它仍然从左上角开始动画。我做错了什么?

expandIn 动画不控制动画开始的位置。 expandFrom 参数控制 Cart 的哪一部分首先出现。

要控制动画的起点,可以使用slideIn。您也可以将它们与 + 结合起来。您可以在 documentation 中阅读有关动画的更多信息,那里有所有可用动画的很好示例。

slideIn(initialOffset = { IntRect(offset = IntOffset.Zero, size = it).topRight} )