Currency Text Input Formatter
Currency Text Input Formatter for Flutter. https://pub.dev/packages/currency_text_input_formatter
Installation
Add pubspec.yaml
dependencies:
currency_text_input_formatter: ^2.2.5
Solving Intl package conflict
Add this code end of pubspec.yaml.
dependency_overrides:
intl: your intl package version
Usage
Basic
import 'package:currency_text_input_formatter/currency_text_input_formatter.dart';
import 'package:flutter/material.dart';
void main() => runApp(MyApp());
class MyApp extends StatelessWidget {
@override
Widget build(BuildContext context) {
return MaterialApp(
title: 'Welcome to Flutter',
home: Scaffold(
appBar: AppBar(
title: Text('Welcome to Flutter'),
),
body: Center(
child: TextField(
inputFormatters: [CurrencyTextInputFormatter.currency()],
// inputFormatters: [CurrencyTextInputFormatter.simpleCurrency()], < for simple
// inputFormatters: [CurrencyTextInputFormatter()], < for basic
keyboardType: TextInputType.number,
),
),
),
);
}
}
With initialValue
import 'package:currency_text_input_formatter/currency_text_input_formatter.dart';
import 'package:flutter/material.dart';
void main() => runApp(MyApp());
class MyApp extends StatelessWidget {
@override
Widget build(BuildContext context) {
return MaterialApp(
title: 'Welcome to Flutter',
home: Scaffold(
appBar: AppBar(
title: const Text('Welcome to Flutter'),
),
body: Center(
child: MyFormField(),
),
),
);
}
}
class MyFormField extends StatefulWidget {
const MyFormField({ super.key });
@override
State<YellowBird> createState() => _MyFormFieldState();
}
class _MyFormFieldState extends State<MyFormField> {
final CurrencyTextInputFormatter _formatter = CurrencyTextInputFormatter.currency();
@override
Widget build(BuildContext context) {
return TextFormField(
initialValue: _formatter.format('2000'),
inputFormatters: <TextInputFormatter>[_formatter],
keyboardType: TextInputType.number,
);
}
}
Custom Options
import 'package:currency_text_input_formatter/currency_text_input_formatter.dart';
import 'package:flutter/material.dart';
void main() => runApp(MyApp());
class MyApp extends StatelessWidget {
@override
Widget build(BuildContext context) {
return MaterialApp(
title: 'Welcome to Flutter',
home: Scaffold(
appBar: AppBar(
title: const Text('Welcome to Flutter'),
),
body: Center(
child: TextField(
inputFormatters: <TextInputFormatter>[
CurrencyTextInputFormatter.currency(
locale: 'ko',
decimalDigits: 0,
symbol: 'KRW(원) ',
),
],
keyboardType: TextInputType.number,
),
),
),
);
}
}
With built-in methods
import 'package:currency_text_input_formatter/currency_text_input_formatter.dart';
import 'package:flutter/material.dart';
void main() => runApp(MyApp());
class MyApp extends StatelessWidget {
@override
Widget build(BuildContext context) {
return MaterialApp(
title: 'Welcome to Flutter',
home: Scaffold(
appBar: AppBar(
title: const Text('Welcome to Flutter'),
),
body: Center(
child: MyFormField(),
),
),
);
}
}
class MyFormField extends StatefulWidget {
const MyFormField({ super.key });
@override
State<YellowBird> createState() => _MyFormFieldState();
}
class _MyFormFieldState extends State<MyFormField> {
final CurrencyTextInputFormatter _formatter = CurrencyTextInputFormatter.currency();
@override
Widget build(BuildContext context) {
// Built-in Methods
print(formatter.getFormattedValue()); // $ 2,000
print(formatter.getUnformattedValue()); // 2000.00
print(formatter.format('2000')); // $ 2,000
print(formatter.formatDouble('20.00')); // $ 20
return TextFormField(
inputFormatters: <TextInputFormatter>[_formatter],
keyboardType: TextInputType.number,
);
}
}
Recommend Libraries
- Confirm Dialog - Confirm Dialog Widget for Flutter(JS-LIKE).
- Prompt Dialog - Prompt Dialog Widget for Flutter(JS-LIKE).
- Alert Dialog - Alert Dialog Widget for Flutter(JS-LIKE).
Maintainer
License
MIT