如何解决Jetpack Compose 中可调整大小的 BasicTextField
有没有办法在 Jetpack Compose 中生成可调整大小的 BasicTextField,以便在用户输入或删除字符时其宽度可以环绕文本大小?他们已经解决了类似的颤振问题,但我没有找到如何为 Compose 解决这个问题。 Flutter - how to make TextField width fit its text ("wrap content")
var text: String by rememberSaveable { mutableStateOf("") }
BasicTextField(
value = text,onValueChange = {
text = it
},modifier = Modifier.wrapContentWidth()
)
不幸的是,wrapContentWidth()
在这里不起作用。
解决方法
我们可以指定宽度范围(textField 可以跨越的最小和最大宽度)
对于宽度:-
modifier = Modifier.widthIn(1.dp,Dp.Infinity) // specified the min width as 1.dp
对于高度:-
modifier = Modifier.heightIn(1.dp,Dp.Infinity)
可组合代码:-
Column(modifier = Modifier.fillMaxWidth(),horizontalAlignment = Alignment.CenterHorizontally) {
OutlinedTextField(
value = text,onValueChange = {
text = it
},modifier = Modifier.widthIn(1.dp,Dp.Infinity)
)
}
当我们输入更多直到 TextField
时,Dp.Infinity
会增长。 (使用 OutlinedTextField
进行演示,但我们可以使用 BasicTextField
)
好吧,看起来 width(IntrinsicSize.Min)
解决了这个问题:
var text: String by rememberSaveable { mutableStateOf("") }
BasicTextField(
value = text,onValueChange = {
text = it
},modifier = Modifier.width(IntrinsicSize.Min)
)
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。