flutter_currency_text_input_formatter 0.0.1 copy "flutter_currency_text_input_formatter: ^0.0.1" to clipboard
flutter_currency_text_input_formatter: ^0.0.1 copied to clipboard

Flutter currency text input formatter with support for customizable symbols, thousand separators, and decimal limits.


💰 flutter_currency_text_input_formatter #

A simple and flexible Flutter TextInputFormatter to automatically format text input as currency. It handles decimal points, thousand separators, and supports customizable leading/trailing symbols.

✨ Features #

  • Automatic Currency Formatting: Formats numbers with thousand separators as you type.
  • Customizable Symbols: Easily set the leading symbol (e.g., \$, £), trailing symbol (e.g., ), decimal separator, and thousand separator.
  • Decimal Digit Control: Specify the maximum number of decimal digits allowed.
  • Smart Input Handling: Manages cursor position and prevents invalid inputs (like multiple leading zeros or non-numeric characters).

🚀 Getting Started #

Installation #

Add the package to your pubspec.yaml file:

dependencies:
  flutter:
    sdk: flutter
  flutter_currency_text_input_formatter: ^0.0.1 # Use the latest version

Then, run:

flutter pub get

Basic Usage #

Use the FlutterCurrencyTextInputFormatter in the inputFormatters property of your TextField or TextFormField.

import 'package:flutter/material.dart';
import 'package:flutter/services.dart'; // Needed for TextInputFormatter
import 'package:flutter_currency_text_input_formatter/flutter_currency_text_input_formatter.dart';

// ... Inside your Widget build method:

TextFormField(
  keyboardType: TextInputType.number,
  decoration: const InputDecoration(
    labelText: 'Enter Amount',
    border: OutlineInputBorder(),
  ),
  inputFormatters: [
    // Basic currency formatting with 2 decimal places and '$' prefix
    FlutterCurrencyTextInputFormatter(
      maxDecimalDigits: 2,
      leadingSymbol: '\$',
      thousandSeparator: ',',
    ),
  ],
)

🛠 Configuration #

The FlutterCurrencyTextInputFormatter, allows for extensive customization through its constructor:

Parameter Type Default Description
maxDecimalDigits int? null The maximum number of digits allowed after the decimal point. If null, any number of digits is allowed.
leadingSymbol String '' Symbol placed at the start of the formatted number (e.g., \$).
trailingSymbol String '' Symbol placed at the end of the formatted number (e.g., ).
decimalSeparator String . The character used to separate the whole and fractional parts (e.g., .).
thousandSeparator String , The character used to separate thousands (e.g., ,).

Examples #

Euro Formatting (using a trailing symbol and different separators)

For European format (e.g., 1.234,56 €):

TextFormField(
  inputFormatters: [
    FlutterCurrencyTextInputFormatter(
      maxDecimalDigits: 2,
      decimalSeparator: ',', // Use comma for decimal
      thousandSeparator: '.', // Use dot for thousand separator
      trailingSymbol: ' €', // Use a trailing symbol
    ),
  ],
)

Integer Only

To accept only whole numbers (no decimal):

TextFormField(
  inputFormatters: [
    FlutterCurrencyTextInputFormatter(
      maxDecimalDigits: 0, // Set to 0 to prevent decimals
      leadingSymbol: 'Count: ',
      thousandSeparator: ' ', // Use a space for thousand separator
    ),
  ],
)

👥 Contribution #

Feel free to fork the repository and submit pull requests to contribute enhancements or fixes.

📄 License #

This package is released under the MIT License.

1
likes
140
points
360
downloads

Publisher

unverified uploader

Weekly Downloads

Flutter currency text input formatter with support for customizable symbols, thousand separators, and decimal limits.

Homepage

Documentation

API reference

License

MIT (license)

Dependencies

flutter

More

Packages that depend on flutter_currency_text_input_formatter