0

我正在尝试制作一个最小尺寸的 TextField,并围绕其中写入的文本展开,我该如何实现?

这是我的测试代码

var text by rememberSaveable { mutableStateOf("Prova") }
Row(
    modifier = Modifier.fillMaxWidth(),
    horizontalArrangement = Arrangement.SpaceBetween
) {
    Text(text = "Test")
    TextField(
        modifier = Modifier
//                .widthIn(10.dp, Dp.Infinity)
//                .width(IntrinsicSize.Min)
            .width(30.dp)
            .wrapContentWidth(),
        value = text,
        onValueChange = {
            text = it
        },
        textStyle = TextStyle.Default.copy(
            textAlign = TextAlign.End
        )
    )
}

这是我寻求的结果(应该在宽度上增加更多的文本,直到它碰到左边的文本) 在此处输入图像描述

谢谢您的帮助!

4

1 回答 1

1

在两者之间使用SpacerwithModifier.weight(1f)将使其工作。

我建议替换TextFieldBasicTextField以更好地控制其外观(特别是实现比MinWidth默认值更小的最小宽度280.dp)。

var text by rememberSaveable { mutableStateOf("Prova") }
    Row(
        modifier = Modifier.fillMaxWidth(),
        horizontalArrangement = Arrangement.SpaceBetween
    ) {
        Text(text = "Test")
        Spacer(modifier = Modifier.weight(1f))
        TextField(
            modifier = Modifier
                .widthIn(1.dp),
            value = text,
            onValueChange = {
                text = it
            },
            textStyle = TextStyle.Default.copy(
                textAlign = TextAlign.End
            )
        )
    }
于 2021-06-12T06:27:49.797 回答