Jetpack Compose 填充行中剩余的空间

27

我有一个最大宽度的行,我想在起始位置放置一个图标,然后是文本,最后再放一个图标。

我有特定大小的图标,并且我希望文本填满剩余的空间。

Row(
   Modifier
   .fillMaxWidth()
   .height(30.dp)
){
  Icon(Modifier.size(20.dp))

  Text() // Fill this with remaining space available

  Icon(Modifier.size(20.dp))
}

如果我在文本中使用fillMaxWidth,那么图标就会超出视图范围。
如何解决?
1个回答

67
你可以将 Modifier.weight(1f) 应用到 Text 的组合中。
类似这样:
Row(
    Modifier
        .fillMaxWidth()
        .height(30.dp)
){
    Icon(Icons.Filled.Add,"", Modifier.size(20.dp))

    Text("Text",Modifier.weight(1f)) // Fill this with remaining space available

    Icon(Icons.Filled.Add,"", Modifier.size(20.dp))
}

enter image description here


我还有一个问题。我已经减小了TextField的高度,但是占位文本和输入文本被裁剪了。即只有50%可见。如何解决? - DelusionaL
@DelusionaL 请尝试减小文本大小。 - Gabriele Mariotti
那时候字体太小了,只有 8.sp 能用,这会影响可访问性。 - DelusionaL

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接