gpt4 book ai didi

android - 编写 : wrap text in Row layout, 而不是将 sibling 推出

转载 作者:行者123 更新时间:2023-12-04 23:37:15 27 4
gpt4 key购买 nike

我正在尝试使用 Jetpack Compose,但我对 Row 的行为感到困惑。我在图标按钮旁边有一个文本,我希望图标按钮锚定在最小宽度为 48dp 的一侧,并在其周围环绕文本。像这样:
Layout goal
但是文本没有换行,它占用了 Row 中的所有空间:
Layout previews

@Composable
fun SampleLayout(text: String) {
Row(
modifier = Modifier.fillMaxWidth(),
horizontalArrangement = Arrangement.SpaceBetween,
) {
Text(text)
IconButton(
onClick = { },
) {
Icon(
imageVector = androidx.compose.material.icons.Icons.Default.StarBorder,
null
)
}
}
}

@Preview(showBackground = true, backgroundColor = 0x006EAEA0, fontScale = 1.5F)
@Composable
fun SamplePreview1() {
Box(Modifier.padding(16.dp)) {
SampleLayout("helooooo")
}
}

@Preview(showBackground = true, backgroundColor = 0x006EAEA0, fontScale = 1.5F)
@Composable
fun SamplePreview2() {
Box(Modifier.padding(16.dp)) {
SampleLayout("helooooooooooooooooooooooooooo")
}
}
@Preview(showBackground = true, backgroundColor = 0x006EAEA0, fontScale = 1.5F)
@Composable
fun SamplePreview3() {
Box(Modifier.padding(16.dp)) {
SampleLayout("heloooooooooooooooooooooooooooooooooooooooo")
}
}
我尝试将图标的最小宽度设置为 48dp,但文本仍然会填充到行尾。
如何确保文本宽度不超过图标按钮?

最佳答案

默认 Text布局优先级高于 Icon为了填补必要的空间。您可以使用 weight 更改此设置修饰符。
使用此修饰符后,Icon 的大小将在 Text 之前计算:

The parent will divide the vertical space remaining after measuring unweighted child elements


还有 weight有一个 fill参数,设置为 true默认。这相当于 fillMaxWidth (当 weightRow 中使用时),因此您可以跳过 fillMaxWidth修饰符在你的 parent 。当您不需要此行为时,请通过 false到这个参数。
Row{
Text(text, modifier = Modifier.weight(1f))
IconButton(
onClick = { }
) {
Icon(
imageVector = Icons.Default.StarBorder,
null
)
}
}

关于android - 编写 : wrap text in Row layout, 而不是将 sibling 推出,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/68972057/

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