在Jetpack Compose中,当第一个文本过长时,添加省略号。

huangapple go评论123阅读模式
英文:

Add ellipsize to first text when it is long in jetpack compose

问题

我有一个包含两个“Text”的“Row”。

如果text1很长,text2就没有地方,就会发生这种情况。如何解决这个问题?

接受的解决方案如下图所示:

英文:

I have a Row with 2 Text in it

       Row(
                    modifier = Modifier
                        .fillMaxWidth()
                        .padding(16.dp),
                    verticalAlignment = Alignment.CenterVertically,
                ) {
                    Text(
                        text = "text1",
                        maxLines = 1,
                        overflow = TextOverflow.Ellipsis,
                        modifier = Modifier.wrapContentWidth(),
                    )
                    Spacer(modifier = Modifier.width(4.dp))

                    Text(
                        text = "(text2)",
                        maxLines = 1,
                        modifier = Modifier.weight(1f),
                    )
                }

在Jetpack Compose中,当第一个文本过长时,添加省略号。

if text1 is long, text2 has no place so this happened:
在Jetpack Compose中,当第一个文本过长时,添加省略号。

how can I fix this?
accepted: 在Jetpack Compose中,当第一个文本过长时,添加省略号。

答案1

得分: 2

尝试使用RowScope.weight来设置第一个文本,并传递fill = false以避免占据整个宽度。

Row(
    modifier = Modifier
        .fillMaxWidth()
        .padding(16.dp),
    verticalAlignment = Alignment.CenterVertically,
) {
    Text(
        text = "text1",
        maxLines = 1,
        overflow = TextOverflow.Ellipsis,
        modifier = Modifier.weight(1f, fill = false),
    )

    Spacer(modifier = Modifier.width(4.dp))

    Text(
        text = "(text2)",
        maxLines = 1,
    )
}
英文:

Try to use RowScope.weight for first text and pass fill = false to avoid occupying whole width.

Row(
    modifier = Modifier
        .fillMaxWidth()
        .padding(16.dp),
    verticalAlignment = Alignment.CenterVertically,
) {
    Text(
        text = "text1",
        maxLines = 1,
        overflow = TextOverflow.Ellipsis,
        modifier = Modifier.weight(1f, fill = false),
    )

    Spacer(modifier = Modifier.width(4.dp))

    Text(
        text = "(text2)",
        maxLines = 1,
    )
}

huangapple
  • 本文由 发表于 2023年5月29日 17:38:03
  • 转载请务必保留本文链接:https://go.coder-hub.com/76356225.html
匿名

发表评论

匿名网友

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen:

确定