当在使用 obliqueText: true 的字段中输入文本时,每个输入的字符都会在转换为项目符号之前短暂显示。你如何阻止这种行为?
这是fixed在网络/桌面上,但没有在移动设备上执行此操作的选项。您可以按照此建议创建自定义 TextEditingControllercomment:
class ObscuringTextEditingController extends TextEditingController {
@override
TextSpan buildTextSpan({TextStyle style, bool withComposing}) {
var displayValue = '•' * value.text.length;
if (!value.composing.isValid || !withComposing) {
return TextSpan(style: style, text: displayValue);
}
final TextStyle composingStyle = style.merge(
const TextStyle(decoration: TextDecoration.underline),
);
return TextSpan(
style: style,
children: <TextSpan>[
TextSpan(text: value.composing.textBefore(displayValue)),
TextSpan(
style: composingStyle,
text: value.composing.textInside(displayValue),
),
TextSpan(text: value.composing.textAfter(displayValue)),
],
);
}
}
Remove obscureText
并使用控制器:
var passwordController = ObscuringTextEditingController();
TextField(
controller: passwordController,
decoration: const InputDecoration(hintText: 'Password'),
)
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)