Eyj*_*afl 5 android kotlin android-jetpack-compose
在 Android Compose 中,我想创建一个Row
占据所有可用宽度并包含两个文本的文本:
我尽力做到这一点,但我只能实现以下目标之一:
A。使第二个文本紧接在第一个文本之后,但首先溢出(只需将它们一个接一个地放在代码中)。
Row(
modifier = Modifier.fillMaxWidth(),
verticalAlignment = Alignment.CenterVertically
) {
Text(text = title)
Text(
text = "Fixed text",
maxLines = 1
)
}
Run Code Online (Sandbox Code Playgroud)
b. 让第一个文本首先溢出,但在它不溢出时占据整个可用空间(通过添加Modifier.weight(1f)
到第一个文本)。
Row(
modifier = Modifier.fillMaxWidth(),
verticalAlignment = Alignment.CenterVertically
) {
Text(
text = title,
modifier = Modifier.weight(1f)
)
Text(
text = "Fixed text",
maxLines = 1
)
}
Run Code Online (Sandbox Code Playgroud)
我怎样才能实现所描述的行为?我知道我可能可以使用ConstraintLayout
,但如果可能的话我想避免它。
您可以使用fill
的参数weight
,默认设置为 true,因此自动占用所有可用空间。但如果你切换到 false 你就会得到你想要的。
例子:
// PreviewShortTextWithNoFill
Row(
modifier = Modifier
.fillMaxWidth()
.padding(all = 16.dp),
horizontalArrangement = Arrangement.spacedBy(space = 8.dp),
verticalAlignment = Alignment.CenterVertically
) {
Text(
modifier = Modifier.weight(weight = 1F, fill = false),
text = "random short text"
)
Text(
text = "fixed text",
maxLines = 1
)
}
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
685 次 |
最近记录: |