You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Jetpack Compose中为内容尺寸变化动画设置时长?

解决Jetpack Compose中Modifier.animateContentSize()时长不生效的问题

你遇到的问题根源其实很直观——你把animateContentSize修饰符放错位置了!它根本没和Column绑定,所以动画直接跳过了。

看你贴的代码,Modifier.animateContentSize()是写在Column的内容块里的,这相当于只是定义了一个Modifier对象,但没把它应用到任何可组合项上,Compose完全不会用它来处理Column的尺寸变化。

修正后的代码

Column(
    modifier = Modifier.animateContentSize(
        animationSpec = tween(durationMillis = 5000, easing = LinearEasing)
    )
) {
    if (!isTabInvisible) {
        // 你的内容放在这里
    }
}

关键注意点

  1. 修饰符必须传入Column的modifier参数:只有这样,Compose才会监听这个Column的尺寸变化,并用你指定的tween动画完成过渡。
  2. 确保状态变量正确触发重组:还要确认isTabInvisible是用mutableStateOf(或其他Compose状态容器)定义的,只有状态变化引发重组,animateContentSize才能检测到尺寸变化并执行动画。

内容的提问来源于stack exchange,提问作者Dmitri

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.04.27 21:18:09