android - 当jetpack compose中的第一个文本很长时,将省略号添加到第一个文本中

标签 android kotlin android-jetpack-compose

我有一个 Row,其中有 2 个 Text

       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),
                    )
                }

enter image description here

如果text1很长,text2就没有位置,所以会发生这种情况: enter image description here

我该如何解决这个问题? 已接受:enter image description here

最佳答案

尝试使用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,
    )
}

关于android - 当jetpack compose中的第一个文本很长时,将省略号添加到第一个文本中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/76356225/

相关文章:

kotlin - 如何定义有序的Kotlin序列

android - Firebase 中有没有一种方法可以自动将 id 列表交换到对象中

android - Jetpack compose 中的 ConstraintLayout 问题

android - 为什么 LaunchedEffect(true) 可疑?

java - Android API 22加载错误

android - 如何在 CameraX 中使用 Camera2Config.Extender

android - 我的应用程序在 Android 10 上运行良好,但在所有其他 Android 版本上崩溃。在模拟器和真实设备上

android - 如何在警报对话框上有两个单选列表?

android - 如何在其他应用程序上显示代码绘制的线条?

android - 如何在 Jetpack Compose 的 Canvas 上绘制一些旋转的元素?