Estou trabalhando na Jetpack Compose
interface do usuário em Android
. Tenho um seguinte Box
que mostra um Text
.
@Preview
@Composable
fun MyText(modifier: Modifier = Modifier)
{
Box(modifier = Modifier.heightIn(max = 94.dp).widthIn(max = 270.dp)
.clip(shape = RoundedCornerShape(20.dp))
.border(
width = 1.dp,
color = Color.Green,
shape = RoundedCornerShape(20.dp)
)
.padding(horizontal = 20.dp, vertical = 8.dp)) {
Text(
text = "Learn how to use Compose effectively",
overflow = TextOverflow.Ellipsis,
maxLines = 3,
fontSize = 15.sp,
fontWeight = FontWeight.W400,
color = Color.Red
)
}
}
Ele produz saída anexada. Como você pode ver, "efetivamente" muda para a próxima linha devido a restrições de largura, mas deixa muito espaço vazio depois de "Compose" na primeira linha. Existe uma maneira de remover esse espaço extra restante para que a largura geral seja reduzida?
Você pode tentar usar o
onTextLayout
retorno de chamada para descobrir o quão longa é a linha mais longa do texto real. Então, defina a largura máxima doText
para o comprimento da linha mais longa (arredondado):Observe que desloquei todos os
Modifier
s para o Text Composable e também ajustei a largura máxima para não incluir o preenchimento.Saída: