当inputFormatters在被指定TextFormField时,initialValue不被处理inputFormatters。
这似乎很奇怪。有没有推荐的方法inputFormatters来格式化initialValue.
例如,我有一个 5 位数字(即 12345),应该在输入字段中用逗号分隔符 (12,345) 显示。默认情况下它显示为 12345,但只要我编辑该值,逗号分隔符就会出现。逗号分隔符应显示在初始值上。
您可以创建一个静态方法来验证您的initialValue
class MyFormater extends TextInputFormatter {
static String defaultFormat(String text) {
// Do whatever you want
return text;
}
@override
TextEditingValue formatEditUpdate(TextEditingValue oldValue, TextEditingValue newValue) {
// Your validations/formats
return null;
}
}
Run Code Online (Sandbox Code Playgroud)
然后你就可以这样使用它
TextFormField(
initialValue: MyFormater.defaultFormat(someString),
inputFormatters: [MyFormater()],
)
Run Code Online (Sandbox Code Playgroud)
我怀疑是否有其他方式可以在TextInputFormatter它获得任何焦点之前触发它。这initialValue意味着已经经过验证并可用作占位符。
| 归档时间: |
|
| 查看次数: |
1227 次 |
| 最近记录: |