如何在 Flutter 的 TextField 中禁用预测文本?

Posted

技术标签:

【中文标题】如何在 Flutter 的 TextField 中禁用预测文本?【英文标题】:How to disable predictive text in TextField of Flutter? 【发布时间】:2019-08-05 00:56:27 【问题描述】:

我想禁用文本字段键盘中的预测文本。在原生 androidios 中并没有那么困难,但我在 Flutter 中没有找到解决方案。

我尝试过使用 autocorrect: false 和更改键盘类型,但它不起作用。

TextField(
          autocorrect: false,
          keyboardType: TextInputType.emailAddress,
          decoration: new InputDecoration(hintText: "Enter text"),
          autofocus: true,
        ),

【问题讨论】:

【参考方案1】:

如果enableSuggestionsautocorrect 都不能解决问题,请尝试将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

如何在 Flutter 中隐藏 TextField 底部的字母计数器

Flutter TextField:如何在右侧添加图标

如何在 Flutter 测试中模拟 TextField 上的按 ENTER

(Flutter) 如何在不按“完成”的情况下自动监听 TextField 中的变化?