flutter 如何确定文本字段ui中出现的新行

ha5z0ras  于 2023-06-30  发布在  Flutter
关注(0)|答案(1)|浏览(139)

我发现我自己的情况下,我需要确定的新行发生的文本字段,如果宽度是达到最大。
我试过这个

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 ..
我需要这个案例,因为我想复制这个文本到其他平台
有什么建议吗?

jum4pzuy

jum4pzuy1#

根据您的注解,您希望获得FormTextField中换行符的位置。
您可以通过创建一个TextPainter来实现这一点,该TextPainter具有与文本字段相同的配置。然后,使用正确的maxWidth调用layout(),与文本字段中的可用空间相同。
之后,您将能够使用getLineBoundary()传递零文本位置,这将返回TextRange,该end属性对应于行中的最后一个字符。

相关问题