Flutter:obviousText,如何停止显示键入的字符

use*_*502 2 flutter

当在使用 obliqueText: true 的字段中输入文本时,每个输入的字符都会在转换为项目符号之前短暂显示。你如何阻止这种行为?

Sam*_*dad 5

此问题已在 Web/桌面上修复,但无法在移动设备上执行此操作。您可以按照此评论中的建议创建自定义 TextEditingController :

\n
class ObscuringTextEditingController extends TextEditingController {\n  @override\n  TextSpan buildTextSpan({TextStyle style, bool withComposing}) {\n    var displayValue = \'\xe2\x80\xa2\' * value.text.length;\n    if (!value.composing.isValid || !withComposing) {\n      return TextSpan(style: style, text: displayValue);\n    }\n    final TextStyle composingStyle = style.merge(\n      const TextStyle(decoration: TextDecoration.underline),\n    );\n    return TextSpan(\n      style: style,\n      children: <TextSpan>[\n        TextSpan(text: value.composing.textBefore(displayValue)),\n        TextSpan(\n          style: composingStyle,\n          text: value.composing.textInside(displayValue),\n        ),\n        TextSpan(text: value.composing.textAfter(displayValue)),\n      ],\n    );\n  }\n}\n
Run Code Online (Sandbox Code Playgroud)\n

删除obscureText并使用控制器:

\n
var passwordController = ObscuringTextEditingController();\n\nTextField(\n  controller: passwordController,\n  decoration: const InputDecoration(hintText: \'Password\'),\n)\n
Run Code Online (Sandbox Code Playgroud)\n