【发布时间】:2021-11-07 02:19:11
【问题描述】:
我希望得到这样的结果。两个分别为 2/3 和 1/3 的块。
我通过这段代码得到了预期的结果。
@Preview(showBackground = true)
@Composable
fun LayoutCheck() {
Column(
modifier = Modifier.fillMaxSize(),
horizontalAlignment = Alignment.CenterHorizontally
) {
Surface(
modifier = Modifier
.width(200.dp)
.weight(3f),
color = MaterialTheme.colors.primary
) {}
Surface(
modifier = Modifier
.width(200.dp)
.weight(1f),
color = MaterialTheme.colors.secondary
) {}
}
}
但是当我把它放在一个惰性列中时,似乎没有任何效果。连显示器都没有。
@Preview(showBackground = true)
@Composable
fun LayoutCheck() {
Box(
modifier = Modifier.fillMaxSize(),
contentAlignment = Alignment.Center
) {
LazyColumn(
modifier = Modifier.fillMaxSize(),
contentPadding = PaddingValues(20.dp)
) {
item {
Column(
modifier = Modifier.fillMaxSize(),
horizontalAlignment = Alignment.CenterHorizontally
) {
Surface(
modifier = Modifier
.width(200.dp)
.weight(3f),
color = MaterialTheme.colors.primary
) {}
Surface(
modifier = Modifier
.width(200.dp)
.weight(1f),
color = MaterialTheme.colors.secondary
) {}
}
}
}
}
}
如果我减轻重量并增加一些高度,它会起作用。但我不想在那里硬编码。那么如何使它与重量一起工作。期待一些帮助..
谢谢
注意:我想要滚动功能,这就是为什么要使用 LazyColumn
真实世界场景: 登录屏幕,前 2/3 部分带有徽标,底部 1/3 部分带有文本和按钮
场景 1:完美运行:
场景2:如果用户字体变大或屏幕旋转,他们将看不到按钮
【问题讨论】:
-
你有物品清单吗?
-
@GabrieleMariotti 没有。只有一项。它是一个启动画面,前 2/3 部分带有徽标,底部 1/3 部分带有文本和按钮
-
为什么你需要一个惰性列来作为启动画面?
-
@Shijilal 可以用一个简单的Column来实现,但是不清楚为什么这个屏幕应该有滚动条。在任何情况下,您都使用 3/4 和 1/4(不是 2/3 和 1/3)
-
@GabrieleMariotti。抱歉,它不是启动画面。它的登录屏幕。底部的文本用于任何错误消息和其他信息。所以有机会,文本更大。在这种情况下,将无法看到按钮。如果您旋转屏幕,情况也是如此。
标签: android android-jetpack android-jetpack-compose lazycolumn