当在使用 obliqueText: true 的字段中输入文本时,每个输入的字符都会在转换为项目符号之前短暂显示。你如何阻止这种行为?
此问题已在 Web/桌面上修复,但无法在移动设备上执行此操作。您可以按照此评论中的建议创建自定义 TextEditingController :
\nclass 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}\nRun Code Online (Sandbox Code Playgroud)\n删除obscureText并使用控制器:
var passwordController = ObscuringTextEditingController();\n\nTextField(\n controller: passwordController,\n decoration: const InputDecoration(hintText: \'Password\'),\n)\nRun Code Online (Sandbox Code Playgroud)\n
| 归档时间: |
|
| 查看次数: |
1878 次 |
| 最近记录: |