【发布时间】:2021-03-21 06:30:31
【问题描述】:
我正在开发一个包含聊天功能的 Flutter Web 应用程序。
我想包含一个普通的输入功能,用户可以在其中输入文本并将其发送到聊天流中。如今,聊天应用程序的一个标准功能是在 <ENTER> 上 send 并在 <SHIFT-ENTER> 上执行换行符,或此的一些变体。
目前我一次只能实现一个这些功能。如果您将TextField 的keyboardType 设置为TextInputType.multiline,那么<ENTER> 和<SHIFT-ENTER> 总是执行换行,似乎没有办法覆盖此行为。
如果您的TextField 是TextInputType.text,您可以捕获<ENTER> 并发送,但尝试捕获<SHIFT-ENTER> 以添加换行符不起作用。我尝试通过onKey 处理程序手动抓取按键并将\n 插入controller.text,但似乎TextInputType.text 根本不适合多行,所以它不能很好地播放。
只是想知道是否有其他开发人员遇到过这种情况或提出了任何合适的解决方案。理想情况下,解决方案也适用于 android/ios。对我来说,我决定使用 TextInputType.text 并暂时放弃多行功能。
谢谢
【问题讨论】:
标签: flutter flutter-layout flutter-web