Skip to content

Instantly share code, notes, and snippets.

@andre-bahia
Last active April 29, 2024 15:06
Show Gist options
  • Save andre-bahia/14fdb0c751822f848a364b3129df1fed to your computer and use it in GitHub Desktop.
Save andre-bahia/14fdb0c751822f848a364b3129df1fed to your computer and use it in GitHub Desktop.
Flutter TextInputFormatter Currency pt_BR
import 'package:flutter/services.dart';
import 'package:intl/intl.dart';
class CurrencyPtBrInputFormatter extends TextInputFormatter {
TextEditingValue formatEditUpdate(TextEditingValue oldValue, TextEditingValue newValue) {
if(newValue.selection.baseOffset == 0){
return newValue;
}
double value = double.parse(newValue.text);
final formatter = new NumberFormat("#,##0.00", "pt_BR");
String newText = "R\$ " + formatter.format(value/100);
return newValue.copyWith(
text: newText,
selection: new TextSelection.collapsed(offset: newText.length));
}
}
// how to use
Widget _fieldValues() {
return Padding(
padding: EdgeInsets.only(top: 10, bottom: 60),
child: TextFormField(
decoration: InputDecoration(
icon: Icon(Icons.monetization_on),
labelText: 'Valor *',
),
keyboardType: TextInputType.number,
inputFormatters: [
FilteringTextInputFormatter.digitsOnly,
CurrencyPtBrInputFormatter()
]
);
}
@EdsonVanderlei
Copy link

EdsonVanderlei commented Dec 5, 2023

Jesus, Maria e José tu fez amor com o código <3

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment