有没有办法在 Jetpack Compose 中生成可调整大小的 BasicTextField,以便在用户输入或删除字符时其宽度能够包裹文本大小?他们已经解决了 flutter 的类似问题,但我没有找到如何为 Compose 解决这个问题。 Flutter - 如何使 TextField 宽度适合其文本(“换行内容”)
var text: String by rememberSaveable { mutableStateOf("") }
BasicTextField(
value = text,
onValueChange = {
text = it
},
modifier = Modifier.wrapContentWidth()
)
Run Code Online (Sandbox Code Playgroud)
不幸的是,wrapContentWidth()在这里不起作用。
android textfield android-jetpack-compose android-jetpack-compose-text
我有一个Text小部件,如果它超过一定的大小,可以截断:
ConstrainedBox(
constraints: BoxConstraints(maxHeight: 50.0),
child: Text(
widget.review,
overflow: TextOverflow.ellipsis,
)
);
Run Code Online (Sandbox Code Playgroud)
或最大行数:
RichText(
maxLines: 2,
overflow: TextOverflow.ellipsis,
text: TextSpan(
style: TextStyle(color: Colors.black),
text: widget.review,
));
Run Code Online (Sandbox Code Playgroud)
我的目标是只有在溢出完成后才能扩展文本.有没有正确的方法来检查文本是否溢出?
我发现在RichText中有一个RenderParagraph renderObject,它有一个私有属性TextPainter _textPainter,有一个bool didExceedMaxLines.
简而言之,我只需要访问,richText.renderObject._textPainter.didExceedMaxLines但正如您所看到的,它是使用下划线私有的.