我希望有这样的结果。两个大小分别为 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:如果用户字体较大或屏幕旋转,他们将无法看到按钮