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

Jetpack Compose视图切换淡入淡出动画跳变问题修复咨询

修复Jetpack Compose视图切换时的跳变动画问题

问题出在你把两个AnimatedVisibility直接放在Column中:当一个视图淡出消失时,它会从Column的布局中移除,导致下方的"Legal information"等元素向上移动;而新视图淡入时又会占据空间,元素再次下移,最终出现跳变现象。

解决方法是将两个切换视图放在同一个Box容器内,让它们重叠显示,这样无论哪个视图显示或隐藏,容器的高度都保持一致,不会影响Column的整体布局:

// 修改SignInOrSignUpMasterView中的Sign In/Up Views部分
Box(modifier = Modifier.fillMaxWidth()) {
    AnimatedVisibility(
        visible = signInOrSignUpViewModel.signInOrSignUpMethod == SignInOrSignUpMethod.Google,
        enter = fadeIn(),
        exit = fadeOut()
    ) {
        SignInOrSignUpWithGoogleView()
    }

    AnimatedVisibility(
        visible = signInOrSignUpViewModel.signInOrSignUpMethod == SignInOrSignUpMethod.EmailOnly,
        enter = fadeIn(),
        exit = fadeOut()
    ) {
        SignInOrSignUpWithEmailAddressView()
    }
}

额外建议:确保两个子视图的尺寸一致(比如都保持fillMaxWidth且内部布局高度相同),这样重叠切换时不会因为视图本身尺寸差异导致微小偏移。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.05 15:05:21