Solución:
Esto se debe a que después de formatear el valor, está agregando un nuevo carácter, pero la selección de texto permanece en la misma posición, un carácter menos, esto causa un comportamiento esperado
Puede modificar su TextInputFormatter
como esto :
Se corrigió para admitir todas las configuraciones regionales y recordar la posición del cursor
class NumericTextFormatter extends TextInputFormatter {
@override
TextEditingValue formatEditUpdate(
TextEditingValue oldValue, TextEditingValue newValue) {
if (newValue.text.isEmpty) {
return newValue.copyWith(text: '');
} else if (newValue.text.compareTo(oldValue.text) != 0) {
final int selectionIndexFromTheRight =
newValue.text.length - newValue.selection.end;
final f = NumberFormat("#,###");
final number =
int.parse(newValue.text.replaceAll(f.symbols.GROUP_SEP, ''));
final newString = f.format(number);
return TextEditingValue(
text: newString,
selection: TextSelection.collapsed(
offset: newString.length - selectionIndexFromTheRight),
);
} else {
return newValue;
}
}
}
¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)