[THIS CODE DOESN’T WORKS FOR ALL CASES]
I just got it working this way, sharing in case someone needs too:
TextField
TextFormField(
//validator: ,
controller: controllerValor,
inputFormatters: [
WhitelistingTextInputFormatter.digitsOnly,
// Fit the validating format.
//fazer o formater para dinheiro
CurrencyInputFormatter()
],
keyboardType: TextInputType.number, ...
TextInputFormatter
class CurrencyInputFormatter extends TextInputFormatter {
TextEditingValue formatEditUpdate(TextEditingValue oldValue, TextEditingValue newValue) {
if(newValue.selection.baseOffset == 0){
print(true);
return newValue;
}
double value = double.parse(newValue.text);
final formatter = NumberFormat.simpleCurrency(locale: "pt_Br");
String newText = formatter.format(value/100);
return newValue.copyWith(
text: newText,
selection: new TextSelection.collapsed(offset: newText.length));
}
}
This is the result of the code:
