A Controller for currency text input
Follow this guide
Import the library
import 'package:currency_textfield/currency_textfield.dart';
Create the Controller
CurrencyTextFieldController controller = CurrencyTextFieldController()
It's possible to customize currencySymbol
, decimalSymbol
and thousandSymbol
:
var controller = CurrencyTextFieldController(currencySymbol: "RR", decimalSymbol: ".", thousandSymbol: ",");
To get the number value from controller, you can use both the doubleValue
or the intValue
properties:
//Double value:
final double val = controller.doubleValue;
//Int value:
final int val = controller.intValue;
//String number:
final int val = controller.textWithoutCurrencySymbol;
You can initialize the controller using a int or a double, but not both at the same time.
To make this, just use initDoubleValue
or initIntValue
:
final CurrencyTextFieldController controller2 = CurrencyTextFieldController(initDoubleValue: 10);
final CurrencyTextFieldController controller3 = CurrencyTextFieldController(initIntValue: 1000);
// this will raise an error!
final CurrencyTextFieldController controller4 = CurrencyTextFieldController(initIntValue: 1000,initDoubleValue: 10);
You can decide if the symbol will be before or after the number.
To make this, just use currencyOnLeft
:
// default with the currency before the number
final CurrencyTextFieldController controller = CurrencyTextFieldController();
// currency after the number
final CurrencyTextFieldController controller2 = CurrencyTextFieldController(currencyOnLeft: false);
And also define the separator between the symbol and the value with currencySeparator
:
// the default value is a single space
final CurrencyTextFieldController controller = CurrencyTextFieldController(currencySeparator: ' -> ');
Just set enableNegative
to false
final CurrencyTextFieldController controller = CurrencyTextFieldController();
// using a double
controller.forceValue(initDoubleValue: 300.5);
// using an int
controller.forceValue(initIntValue: 10000);
final CurrencyTextFieldController controller = CurrencyTextFieldController();
// keeping the current value:
controller.replaceCurrencySymbol('EUR');
// reseting the current value:
controller.replaceCurrencySymbol('EUR', resetValue: true);