如何在 Jetpack Compose 中使小部件不可见?

时间:2021-06-23 20:27:34

标签: android kotlin android-jetpack-compose

我试图在列中显示和隐藏 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 一样不可见?

如何获取小部件大小以设置 Spacer 大小?

谢谢

1 个答案:

答案 0 :(得分:1)

您的解决方案是正确的,但您也可以将进度指示器包装在预期大小的 Box 中

Box(modifier = Modifier.height(40.dp) {
    if (condition) {
        CircularProgressIndicator()
    }
}