gpt4 book ai didi

android - 如何使用 ConstraintLayout 链接两个文本

转载 作者:行者123 更新时间:2023-12-05 03:18:54 25 4
gpt4 key购买 nike

我正在为 Compose 使用 ConstraintLayout,但我在这里遇到了问题。

我有一个 Text 是:

Text(
text = "Whatever",
overflow = TextOverflow.Ellipsis,
maxLines = 1,
modifier = Modifier
.padding(start = 16.dp)
.constraintAs(title) {
start.linkTo(parent.start)
bottom.linkTo(parent.bottom, 24.dp)
end.linkTo(images.start)
width = Dimension.fillToConstraints
},
)

这是一个简单的 Text,然后我有一个 Row,其中它是 Image 的动态数字,例如:

Row(
modifier = Modifier
.constraintAs(images) {
start.linkTo(title.end)
top.linkTo(title.top)
bottom.linkTo(title.bottom)
end.linkTo(parent.end, 16.dp)
},
) {
repeat(dynamicNumber) {
Image(
painter = painterResource...
modifier = Modifier.padding(horizontal = 3.dp)
)
}
}

我在这里遇到的问题是当“标题”很长时这段代码非常适合,这正是我所期望的,如下图所示:

enter image description here

问题是当文本很小时图像会粘到最后,因为我放了 end.linkTo(parent.end)

现在是这样的: enter image description here

应该是这样的: enter image description here

想法是,如果文本很大,那么它的宽度足以不与图像重叠,当它达到极限时添加椭圆,然后如果文本很小,图像不应该放在最后,而只是坚持使用小文字。

我错过了什么?

最佳答案

除了使用 ConstraintLayout,您可以使用一个简单的 Rowweight(1f,false) 修饰符应用于 文本。使用 fill=false 元素将不会占据分配的整个宽度。

   Row(Modifier.fillMaxWidth()) {

Text(
text = "Whatever",
overflow = TextOverflow.Ellipsis,
maxLines = 1,
modifier = Modifier
.padding(start = 16.dp)
.weight(1f, false)
)

repeat(dynamicNumber) {
Image(
painter = painterResource...
modifier = Modifier.padding(horizontal = 3.dp)
)
}
}

enter image description here

关于android - 如何使用 ConstraintLayout 链接两个文本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/73582825/

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