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

Jetpack Compose中AnimatedVisibility动画完全失效问题求助

Troubleshooting AnimatedVisibility No Animation Issue in Jetpack Compose

Here are the most likely reasons your animation isn't working, along with actionable fixes:

1. Initial State Doesn't Trigger Transition

Your code initializes visible = true, so the composable starts in the visible state. AnimatedVisibility only plays enter/exit animations when the visible state changes—there's no transition to trigger on initial render.

Fix:
Start with visible = false and add a toggle to modify the state:

var visible by remember { mutableStateOf(false) }
val density = LocalDensity.current

// Add a button to trigger state changes
Button(onClick = { visible = !visible }) {
    Text(if (visible) "Hide Text" else "Show Text")
}

AnimatedVisibility(
    visible = visible,
    enter = slideInVertically {
        with(density) { -40.dp.roundToPx() }
    } + expandVertically(expandFrom = Alignment.Top) + fadeIn(initialAlpha = 0.3f),
    exit = slideOutVertically() + shrinkVertically() + fadeOut()
) {
    Text("Hello", Modifier.fillMaxWidth().height(200.dp))
}

2. Outdated Compose Dependencies

Older versions of Jetpack Compose had bugs or incomplete support for AnimatedVisibility animations. Ensure you're using a recent stable Compose BOM version.

Fix:
Update your module-level build.gradle (or build.gradle.kts) to use the latest stable Compose BOM:

dependencies {
    implementation platform("androidx.compose:compose-bom:2024.04.00")
    implementation "androidx.compose.ui:ui"
    implementation "androidx.compose.material3:material3"
    implementation "androidx.compose.animation:animation"
}

3. Missing Layout Constraints

If the parent layout of AnimatedVisibility doesn't provide enough space or proper alignment, animations might not render correctly.

Fix:
Wrap your content in a layout that fills available space, like Column with fillMaxSize:

Column(modifier = Modifier.fillMaxSize(), verticalArrangement = Arrangement.Center) {
    // Toggle button and AnimatedVisibility here
}

On Jetpack Compose Online Debug Environment

Google doesn't offer an official online debug environment for Compose yet, but you can use:

  • Jetpack Compose Playground: A web-based tool for writing and testing Compose code in real-time.
  • Android Studio Interactive Preview: Use the built-in preview to iterate on animations quickly without deploying to a device.

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.15 21:40:33