formatEditUpdate method

  1. @override
TextEditingValue formatEditUpdate(
  1. TextEditingValue previousValue,
  2. TextEditingValue nextValue
)
override

Called when text is being typed or cut/copy/pasted in the EditableText.

You can override the resulting text based on the previous text value and the incoming new text value.

When formatters are chained, oldValue reflects the initial value of TextEditingValue at the beginning of the chain.

Implementation

@override
TextEditingValue formatEditUpdate(TextEditingValue previousValue, TextEditingValue nextValue) {
  // iOS 部分区域设置下小数分隔符为逗号,归一化为句点后再校验
  final normalizedText = nextValue.text.replaceAll(',', '.');
  final normalized = normalizedText == nextValue.text
      ? nextValue
      : nextValue.copyWith(text: normalizedText);
  if (_pattern.hasMatch(normalized.text)) {
    return normalized;
  } else {
    return TextEditingValue(text: previousValue.text);
  }
}