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
相关产品推荐
相关产品推荐

