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
大小?
谢谢
解决方案
使用 Alpha Zero,@commonsware 的评论中提到了这一点,因为您不需要知道空间大小的大小,这与 Spacer() 组合不同,它需要特定的大小,在某些情况下这可能很难知道。
val commentsAlpha = if (condition) 1f else 0f
modifier = Modifier
.alpha(commentsAlpha)
推荐阅读
- flutter - 如何下载特定版本的here-sdk for flutter?
- android - 如何更新功能标志的 Expo APK/IPA/AAB/APP 文件?
- node.js - 如何从数据库中检索 FCM Token 和 userId,然后使用 Node.js 和 Cloud Functions 发送推送通知
- php - 如何计算一系列时间间隔的分钟差
- node.js - 这个 javascript 正则表达式 string.replace 有什么问题?
- flutter - 什么时候应该使用样式:TextStyle() 和 Theme.of()
- javascript - 我是否使用 ajax 正确调用了 Gitlab API?
- neo4j - Neo4j - 使用包含点的标题加载 CSV?
- java - 将 CompletableFuture 值从 IntStream 添加到最终的 CompletableFuture 变量
- mysql - 拖放列表,从mysql中的元素中保存顺序的最佳性能