gpt4 book ai didi

android - 使用权重修改器在 LazyColumn 内排列单个项目

转载 作者:行者123 更新时间:2023-12-03 08:16:44 31 4
gpt4 key购买 nike

我希望得到这样的结果。两个分别为 2/3 大小和 1/3 大小的 block 。

enter image description here

我用这段代码得到了预期的结果。

@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

真实场景:登录屏幕, Logo 位于前 2/3 部分,文本和按钮位于底部 1/3 部分

场景 1:完美工作:

enter image description here

场景 2:如果用户字体较大或屏幕旋转,他们将无法看到按钮

enter image description here

最佳答案

由于您只有一项,因此只需使用带有 VerticalScroll 的 Column 即可:

val scrollState = rememberScrollState()
Column(
modifier = Modifier
.verticalScroll(scrollState),
horizontalAlignment = Alignment.CenterHorizontally,
) {
//...
}

此外,如果您想要 2/3 和 1/3,请在第一个 Surface 中使用 weight(2f) 修饰符。

关于android - 使用权重修改器在 LazyColumn 内排列单个项目,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/69134734/

31 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com