我发现我自己的情况下,我需要确定的新行发生的文本字段,如果宽度是达到最大。
我试过这个
print((textController.text.contains('\n')).toString());
但它不包含'\n',因为新行来自textField
Widget本身,而不是用户输入
我也试着用
final GlobalKey<FormFieldState<String>> globalKeyForTextField2 = GlobalKey<FormFieldState<String>>();
然后
final textFieldState = globalKeyForTextField2.currentState;
final currentText = textFieldState!.value;
print('currentText $currentText');
它也不包含'\n' ..
所以我需要的方式,所以根据它,我将手动添加'\n'到我的textController ..
我需要这个案例,因为我想复制这个文本到其他平台
有什么建议吗?
1条答案
按热度按时间jum4pzuy1#
根据您的注解,您希望获得
FormTextField
中换行符的位置。您可以通过创建一个
TextPainter
来实现这一点,该TextPainter
具有与文本字段相同的配置。然后,使用正确的maxWidth
调用layout()
,与文本字段中的可用空间相同。之后,您将能够使用
getLineBoundary()
传递零文本位置,这将返回TextRange
,该end
属性对应于行中的最后一个字符。