CurrencyInputFormatter constructor

CurrencyInputFormatter({
  1. ThousandSeparator thousandSeparator = ThousandSeparator.Comma,
  2. int mantissaLength = 2,
  3. String leadingSymbol = '',
  4. String trailingSymbol = '',
  5. bool useSymbolPadding = false,
  6. ValueChanged<num>? onValueChange,
  7. int? maxTextLength,
})

thousandSeparator specifies what symbol will be used to separate each block of 3 digits, e.g. ThousandSeparator.Comma will format million as 1,000,000 ShorteningPolicy.NoShortening displays a value of 1234456789.34 as 1,234,456,789.34 but ShorteningPolicy.RoundToThousands displays the same value as 1,234,456K mantissaLength specifies how many digits will be added after a period sign leadingSymbol any symbol (except for the ones that contain digits) the will be added in front of the resulting string. E.g. $ or € some of the signs are available via constants like CurrencySymbols.EURO_SIGN but you can basically add any string instead of it. The main rule is that the string must not contain digits, periods, commas and dashes trailingSymbol is the same as leading but this symbol will be added at the end of your resulting string like 1,250€ instead of €1,250 useSymbolPadding adds a space between the number and trailing / leading symbols like 1,250€ -> 1,250 € or €1,250€ -> € 1,250 onValueChange a callback that will be called on a number change

Implementation

CurrencyInputFormatter({
  this.thousandSeparator = ThousandSeparator.Comma,
  this.mantissaLength = 2,
  this.leadingSymbol = '',
  this.trailingSymbol = '',
  this.useSymbolPadding = false,
  this.onValueChange,
  this.maxTextLength,
}) : assert(
          !leadingSymbol.contains(_illegalLeadingOrTrailing) &&
              !trailingSymbol.contains(_illegalLeadingOrTrailing),
          '''
  Illegal trailing or reading symbol. You cannot use
  the next symbols as leading or trailing because
  they might interfere with numbers: -,.+
''');