Jetpack Compose中View.INVISIBLE的替代实现方案咨询
Jetpack Compose 中对应 View.INVISIBLE 的替代方案
在Android XML布局里,View.INVISIBLE的作用是隐藏视图但保留它在布局中占用的空间。在Jetpack Compose里,直接对应的实现是使用Modifier.visibility(Visibility.Invisible),示例代码如下:
Button( onClick = {}, modifier = Modifier.visibility(Visibility.Invisible) ) { Text("隐藏但仍占布局空间的按钮") }
关于你给出的 AnimatedVisibility 代码
默认情况下,AnimatedVisibility的行为更接近XML里的View.GONE——隐藏视图时会将其从布局中移除,不再占用空间。如果想用它实现和View.INVISIBLE一致的效果,需要开启maintainSpaceWhenHidden = true,同时搭配透明度类的进入/退出动画:
AnimatedVisibility( visible = false, enter = fadeIn(), exit = fadeOut(), maintainSpaceWhenHidden = true ) { Button(onClick = {}) { Text("带淡入淡出动画的隐藏按钮(保留布局空间)") } }
通过maintainSpaceWhenHidden = true设置,视图在隐藏状态下会继续占据布局空间,加上透明度动画就完全匹配View.INVISIBLE的表现了。
内容的提问来源于stack exchange,提问作者Compose Learner
相关产品推荐
相关产品推荐

