如何在 Flutter 的 TextField 中禁用预测文本?
Posted
技术标签:
【中文标题】如何在 Flutter 的 TextField 中禁用预测文本?【英文标题】:How to disable predictive text in TextField of Flutter? 【发布时间】:2019-08-05 00:56:27 【问题描述】:我想禁用文本字段键盘中的预测文本。在原生 android 和 ios 中并没有那么困难,但我在 Flutter 中没有找到解决方案。
我尝试过使用 autocorrect: false 和更改键盘类型,但它不起作用。
TextField(
autocorrect: false,
keyboardType: TextInputType.emailAddress,
decoration: new InputDecoration(hintText: "Enter text"),
autofocus: true,
),
【问题讨论】:
【参考方案1】:如果enableSuggestions
和autocorrect
都不能解决问题,请尝试将keyboardType
设置为TextInputType.visiblePassword。
【讨论】:
TextInputType.visiblePassword 有效,但我需要键盘中的多行按钮 enableSuggestions: false 为我工作。谢谢。【参考方案2】:您可以尝试将enableSuggestions = false
添加到您的文本字段小部件。这应该会禁用键盘上的预测文本,就像 https://github.com/flutter/flutter/pull/42550 一样。
TextField(
autocorrect: false,
enableSuggestions: false,
keyboardType: TextInputType.emailAddress,
decoration: new InputDecoration(hintText: "Enter text"),
autofocus: true,
),
【讨论】:
【参考方案3】:现在尝试这样做,因为还没有具体的解决方案
TextField(
enableSuggestions: false,
keyboardType: TextInputType.visiblePassword
)
确实有效。我想说这不是很明显,而且enableSuggestions
似乎根本没有改变行为(只是keyboardType
属性),当keyboardType
设置为其他任何东西时这不起作用比可见密码
【讨论】:
【参考方案4】:在撰写此答案时,Android 中尚不提供此功能。但是在 iOS 上使用 autocorrect: false 应该可以正常工作。
检查:https://github.com/flutter/flutter/issues/22828
【讨论】:
【参考方案5】:这对我在 iOS 和 android 上都有效
TextField(
autocorrect: false,
obscureText: true,
controller: answerText,
textAlign: TextAlign.center,
keyboardType: TextInputType.text,
textInputAction: TextInputAction.done,
autofocus: true,
onChanged: (value)
setState(()
result = value;
);
,),
唯一的缺点是它从屏幕上掩盖了所写的内容。一种解决方法是在屏幕某处添加Text(result)
【讨论】:
以上是关于如何在 Flutter 的 TextField 中禁用预测文本?的主要内容,如果未能解决你的问题,请参考以下文章
如何在 Container 中垂直扩展 TextField 以覆盖 Flutter 中的所有可用空间
如何在 Flutter 中隐藏 TextField 底部的字母计数器