dart - How to add a mask in a TextField in Flutter?

Dart - How to add a mask in a TextField in Flutter?

To add a mask to a TextField in Flutter, you can use the flutter_masked_text package. This package simplifies the process of creating masked text input fields. Here's a step-by-step guide:

  1. Add the flutter_masked_text dependency to your pubspec.yaml file:

    dependencies: flutter_masked_text: ^0.10.7 

    Run flutter pub get to fetch the dependency.

  2. Import the package in your Dart file:

    import 'package:flutter_masked_text/flutter_masked_text.dart'; 
  3. Use the MaskedTextController to create a masked text editing controller with the desired mask:

    var controller = MaskedTextController(mask: '00/00/0000'); 

    Replace '00/00/0000' with your desired mask. For example, '(000) 000-0000' for a phone number mask.

  4. Attach the controller to your TextField:

    TextField( controller: controller, decoration: InputDecoration(labelText: 'Date of Birth'), ) 

    The controller will automatically apply the mask to the text entered by the user.

Here's a complete example:

import 'package:flutter/material.dart'; import 'package:flutter_masked_text/flutter_masked_text.dart'; void main() { runApp(MyApp()); } class MyApp extends StatelessWidget { @override Widget build(BuildContext context) { return MaterialApp( home: HomeScreen(), ); } } class HomeScreen extends StatelessWidget { var controller = MaskedTextController(mask: '00/00/0000'); @override Widget build(BuildContext context) { return Scaffold( appBar: AppBar( title: Text('Masked TextField Example'), ), body: Padding( padding: const EdgeInsets.all(16.0), child: TextField( controller: controller, decoration: InputDecoration(labelText: 'Date of Birth'), ), ), ); } } 

In this example, the mask '00/00/0000' represents a date format. You can customize the mask according to your requirements. The flutter_masked_text package supports a variety of mask patterns for different use cases.

Examples

  1. "Flutter TextField mask for phone number"

    Code Implementation:

    TextField( keyboardType: TextInputType.phone, inputFormatters: [FilteringTextInputFormatter.digitsOnly], decoration: InputDecoration( labelText: 'Phone Number', hintText: 'Enter phone number', ), ) 

    Description: Use inputFormatters with FilteringTextInputFormatter.digitsOnly to create a mask for a phone number with only digits.

  2. "Dart Flutter mask for currency input in TextField"

    Code Implementation:

    TextField( keyboardType: TextInputType.number, inputFormatters: [ FilteringTextInputFormatter.allow(RegExp(r'^\d+\.?\d{0,2}')), ], decoration: InputDecoration( labelText: 'Amount', hintText: 'Enter amount', ), ) 

    Description: Apply a mask for currency input using a regular expression and FilteringTextInputFormatter.allow to allow digits and a decimal point with up to two decimal places.

  3. "Flutter TextField mask for date input"

    Code Implementation:

    TextField( keyboardType: TextInputType.datetime, inputFormatters: [ FilteringTextInputFormatter.allow(RegExp(r'\d{0,2}/\d{0,2}/\d{0,4}')), ], decoration: InputDecoration( labelText: 'Date', hintText: 'MM/DD/YYYY', ), ) 

    Description: Create a mask for date input using a regular expression to allow digits and slashes, enforcing the format MM/DD/YYYY.

  4. "Dart Flutter mask for SSN input in TextField"

    Code Implementation:

    TextField( keyboardType: TextInputType.number, inputFormatters: [ FilteringTextInputFormatter.digitsOnly, LengthLimitingTextInputFormatter(9), MaskTextInputFormatter(mask: '###-##-####', filter: {'#': RegExp(r'\d')}), ], decoration: InputDecoration( labelText: 'Social Security Number', hintText: 'Enter SSN', ), ) 

    Description: Use MaskTextInputFormatter along with other formatters to create a mask for Social Security Number input.

  5. "Flutter mask for credit card number in TextField"

    Code Implementation:

    TextField( keyboardType: TextInputType.number, inputFormatters: [ FilteringTextInputFormatter.digitsOnly, LengthLimitingTextInputFormatter(16), MaskTextInputFormatter(mask: '#### #### #### ####', filter: {'#': RegExp(r'\d')}), ], decoration: InputDecoration( labelText: 'Credit Card Number', hintText: 'Enter card number', ), ) 

    Description: Apply a mask for credit card number input using MaskTextInputFormatter with a predefined format.

  6. "Dart Flutter mask for ZIP code in TextField"

    Code Implementation:

    TextField( keyboardType: TextInputType.number, inputFormatters: [ FilteringTextInputFormatter.digitsOnly, LengthLimitingTextInputFormatter(5), ], decoration: InputDecoration( labelText: 'ZIP Code', hintText: 'Enter ZIP code', ), ) 

    Description: Use FilteringTextInputFormatter.digitsOnly along with LengthLimitingTextInputFormatter to create a mask for ZIP code input.

  7. "Flutter TextField mask for custom pattern"

    Code Implementation:

    TextField( keyboardType: TextInputType.text, inputFormatters: [ FilteringTextInputFormatter.allow(RegExp(r'[A-Za-z0-9]{4}-[A-Za-z0-9]{4}')), ], decoration: InputDecoration( labelText: 'Custom Pattern', hintText: 'AB12-CD34', ), ) 

    Description: Define a custom pattern using a regular expression with FilteringTextInputFormatter.allow to create a mask for a specific format.

  8. "Dart Flutter mask for time input in TextField"

    Code Implementation:

    TextField( keyboardType: TextInputType.datetime, inputFormatters: [ FilteringTextInputFormatter.allow(RegExp(r'\d{0,2}:\d{0,2}')), ], decoration: InputDecoration( labelText: 'Time', hintText: 'HH:MM', ), ) 

    Description: Apply a mask for time input using a regular expression to allow digits and a colon, enforcing the format HH:MM.

  9. "Flutter TextField mask for alphanumeric input"

    Code Implementation:

    TextField( keyboardType: TextInputType.text, inputFormatters: [ FilteringTextInputFormatter.allow(RegExp(r'[a-zA-Z0-9]')), ], decoration: InputDecoration( labelText: 'Alphanumeric', hintText: 'Enter alphanumeric', ), ) 

    Description: Create a mask for alphanumeric input using a regular expression to allow letters and digits only.

  10. "Dart Flutter mask for custom date format in TextField"

    Code Implementation:

    TextField( keyboardType: TextInputType.datetime, inputFormatters: [ FilteringTextInputFormatter.allow(RegExp(r'\d{0,2}/\d{0,2}/\d{0,4}')), TextInputFormatter.withFunction((oldValue, newValue) { if (newValue.text.length == 3 || newValue.text.length == 6) { return TextEditingValue( text: '${newValue.text}/', selection: TextSelection.collapsed(offset: newValue.text.length + 1), ); } return newValue; }), ], decoration: InputDecoration( labelText: 'Custom Date Format', hintText: 'MM/DD/YYYY', ), ) 

    Description: Combine a regular expression with TextInputFormatter.withFunction to create a custom mask for date input with a specific format.


More Tags

background-attachment hardware android-maps-v2 sqlite ion-select apache-httpcomponents telephonymanager sse verify youtube

More Programming Questions

More Weather Calculators

More Electrochemistry Calculators

More Investment Calculators

More Animal pregnancy Calculators