我想知道如何在行中放置文本可组合元素,即TopAppBar的宽度可变的行.

对于这两个文本,一个具有随字符数变化的宽度,另一个具有固定的字符数,我们希望字符串能够可靠地显示.

我试着编写代码来实现这一点,但它并没有像我预期的那样工作.

以下是我的代码和我所想的图像.

@Composable
fun AppBarTestScreen() {

    Column {

            TopAppBar(
                title = {
                    Row(Modifier.fillMaxWidth()) {
                        
                        Text(
                            text = "〇〇〇〇〇〇",
                            modifier = Modifier.wrapContentWidth().widthIn(max = 210.dp),
                            maxLines = 1,
                            overflow = TextOverflow.Ellipsis,
                            softWrap = false
                        )

                        Text(
                            text = "'s Attribute",
                            modifier = Modifier.fillMaxWidth().clipToBounds(),
                            textAlign = TextAlign.Start,
                            overflow = TextOverflow.Clip,
                            softWrap = false
                        )

                    }
                }
            )

            ....

    }

}

enter image description here

我try 了各种修饰符函数和模式

目前,我在第一个文本上设置了最大宽度.然而,当设备处于纵向而不是横向时,这一点效果很好.此外,当涉及到平板电脑和其他设备时,结果并不清楚.

如果没有其他方法,我最终将不得不依赖unstable个外部库,但有没有办法在没有它们的情况下做出我想要的东西?

推荐答案

100修改器应用于第一个Text:

Row(Modifier.fillMaxWidth()) {

    Text(
        text = "〇〇〇〇〇〇〇〇〇〇〇〇〇〇〇〇",
        modifier = Modifier.weight(1f),
        maxLines = 1,
        overflow = TextOverflow.Ellipsis,
    )

    Text(text = "'s Attribute")
}

enter image description here

如果你想避免用前Text个填满整个空格,请使用Modifier.weight(1f,false):

Text(
    text = "〇〇〇〇〇〇〇",
    modifier = Modifier.weight(1f,false),
    maxLines = 1,
    overflow = TextOverflow.Ellipsis,
)

enter image description here

Android相关问答推荐

Android添加设置图标齿轮到应用程序信息

懒惰列的滚动到项目不按预期工作'

如何将两个变量传递给Nav主机,然后将其传递给另一个屏幕?

StateFlow和LazyColumn重组

我想使用代码自动重命名我的Android存储中的文件夹

(已解决)从最近的应用程序打开应用程序时出错

Android 构建失败:找不到 flexbox2.0.1.aar

Android 应用程序从 Android Studio 安装,但不是作为 .apk 在外部安装.抛出java.lang.UnsatisfiedLinkError

只能从同一个库组内调用成功(引用groupId=androidx.work from groupId=My Composable)

DatePickerDialog (Android/Kotlin) 的两个问题

根据另一个数组的值对数组进行排序

Android 设备断开连接后发送的 BLE 蓝牙数据

在 Jetpack Compose 中更改列中子项的对齐方式

单击 Jetpack Compose(单选)时,我无法为列表中的单个文本着色

有什么方法可以确定正在使用哪个 Android 手机的麦克风进行录音?

如何使用底页,启用和展开父交互

如何从我的 android 应用程序中删除 QUERY_ALL_PACKAGES 权限?

预览必须是顶级声明或具有默认构造函数的顶级类

在 Jetpack Compose 中 Select 要省略的文本

Сan 无法从 Firestore 获取数据,没有错误