我用ComposeConstraintLayout,但我在这里遇到了一个问题.

我的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)

This is how it looks now : enter image description here

This is how should be : enter image description here

我们的 idea 是,如果文本很大,那么它的宽度就足以不与图像重叠,当它达到极限时,添加省略号,如果文本很小,图像不应该在末尾,而应该只停留在小文本上.

我错过了什么?

推荐答案

您可以不使用ConstraintLayout,而是使用简单的Rowweight(1f,false)修改器应用于Text. 使用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相关问答推荐

derivedStateOf与使用key和MutableState记住

无法安装后重新编译android代码'

Android设备.Net Maui上的mp3文件列表

如何处理穿戴构图上的长点击事件?

Android应用程序中的背景问题

在一列中垂直对齐两个框

如何共享没有';t是否存在?(仅信息)在Android?

如何检测低性能 Android 设备进行条件动画渲染?

SDK 33 的问题 - 面向 S+(版本 31 及更高版本)要求在创建 PendingIntent 时指定 FLAG_IMMUTABLE 或 FLAG_MUTABLE 之一

Play store 的 Play 完整性与 Firebase 应用判断 Play 完整性

警告:应用必须面向 Android 13(API 级别 33)或更高版本.确实如此

如何使用滑行加载媒体的专辑封面?

当父布局的背景为浅色时,Android ProgressBar 背景 colored颜色 变为灰色

我怎样才能在多行 TextView 旁边有一个 ImageView 并且不超过父级的限制?

为什么官方文档用大写字母表示val变量?

删除一对多关系室 Kotlin 中的所有值

如何在 kotlin 的 android room DB 中设置一对多关系

compose FontFamily 错误:必须初始化变量

更新应用程序是否会取消对应用程序特定文件的权限?

compose :为什么以记住启动的列表触发方式与快照不同