我试图在一列中显示和隐藏ProgressIndicator
。问题是当我想隐藏ProgressIndicator
时,其他小部件之间的空间也会被删除(如View.GONE
),但我想保持小部件大小(如View.INVISIBLE
)
例如:
@Composable
fun Main(isLoading: Boolean) {
Column {
Text(text = "Text")
if (isLoading) {
CircularProgressIndicator()
}
Button(onClick = { /*clicked*/ }, content = { Text(text = "Button") })
}
}
我找到了一个解决办法,但我不确定这是不是正确的方法。
if (isLoading) {
CircularProgressIndicator()
} else {
Spacer(modifier = Modifier.height(40.dp))
}
有没有其他方法可以像View.INVISIBLE
一样使widget不可见?
如何获取小部件大小以设置Spacer
大小?
谢谢
5条答案
按热度按时间qlvxas9a1#
使用AlphaZero,这在@commonsware的评论中提到,因为你不需要知道空间大小的大小,不像Spacer()composable需要特定的大小,在某些情况下这可能很难知道。
w41d8nur2#
我使用以下方法:AnimatedVisibilityhttps:developer.android.com/jetpack/compose/animation#animatedvisibility
它还可用于观察动画状态。
rvpgvaaj3#
您的解决方案是正确的,但您也可以将进度指示器 Package 在预期大小的Box中
gmxoilav4#
您可以使用自定义布局修改器,它定义了一个空白区域的组合,你想使不可见。它也防止接收任何触摸事件时不可见。
ssgvzors5#
用途: