Buscar pacotes, repositórios e categorias de apps

Capa de masked_text_field
Detalhes do pacotev1.0.2

masked_text_field

Um pacote para campo de texto com máscara para formatar seu texto. Se você quiser uma máscara para número de telefone, endereço IP ou qualquer outro tipo de formato, use este pacote.

AndroidiOSWebmacOSWindowsLinux
Downloads em 30 dias
656
Curtidas
29
Pontos Pub
150

Instalar pacote

flutter pub add masked_text_field

Visão geral do pacote

Orientação gerada a partir de informações públicas. Apenas para referência.

Um pacote Flutter que permite entrada de texto formatado com máscaras personalizáveis, ideal para campos como números de telefone, endereços IP ou outros dados estruturados. Ele aplica automaticamente o formato conforme os usuários digitam, garantindo padrões de entrada consistentes. O pacote suporta validação em tempo real e é compatível com todas as principais plataformas, incluindo Android, iOS, Web, macOS, Windows e Linux. Simplifica o manuseio de formulários reduzindo erros do usuário por meio de formatos obrigatórios.

Casos de uso

  • Entrada de número de telefone
  • Entrada de endereço IP
  • Formatação de número de cartão de crédito
  • Mascaramento de campo de data e hora
  • Entradas de formato personalizado
  • Assistência de validação de formulário

Principais recursos

  • Aplicação em tempo real de máscara
  • padrões de máscara configuráveis
  • Suporte multiplataforma
  • Posicionamento automático do cursor
  • Validação embutida
  • Integração fácil com TextFormField

Indicado para

  • entradas de formulário que exigem formatação rigorosa
  • Aplicativos móveis e web com formulários de entrada de dados
  • Desenvolvedores que precisam de máscaras de entrada reutilizáveis
  • Aplicativos com formatos internacionais de números
  • experiências de entrada centradas no UX

Considerações

  • Pode exigir um design cuidadoso do padrão de máscara
  • Limitado a entradas baseadas em texto
  • Impacto potencial no desempenho com máscaras complexas
  • Não adequado para tipos de entrada não-texto
  • Requer manipulação manual do foco e seleção

README original

Snapshot do README original do repositório-fonte vinculado. Consulte o repositório para o conteúdo mais recente.

Masked Text Field

Masked Text Field

pub package pub points LinkedIn Instagram Facebook Youtube

Features

A package for masked text field for format your text (eg. Date, phone number, IP address etc.), so if you want a mask for phone number, or IP address or any kind of format. Use this package.
Image

Getting started

Add the dependency in pubsec.yaml file.

dart
  dependencies:
    flutter:
      sdk: flutter
    masked_text_field: any

Usage Example

import flutter_social_button.dart


import 'package:masked_text_field/masked_text_field.dart';

for add Text Field

It's very simple, it's a Widget as all the other ones.


MaskedTextField
(
    maskedTextFieldController: textfieldController,
    mask: "xxx.xxx.xxx.xxx",
    maxLength: 15,
    keyboardType: TextInputType.number,
    inputDecoration: new InputDecoration(
    hintText: "192.192.192.192", 
    counterText: "",
    labelText: "IP Address"),
);

'x' is the normal char that your text will have.

this sample reproduces something like this in the end: 192.192.192.192.

You can also change the escape character you want to use.

If you want to change it, you just need to fill the property escapeCharacter with the character you want.


MaskedTextField
(
    maskedTextFieldController: textfieldController,
    escapeCharacter: '#',
    mask: "###.###.###.###",
    maxLength: 15,
    keyboardType: TextInputType.number,
    inputDecoration: new InputDecoration(
    counterText: "",
    hintText: "192.192.192.192", 
    labelText: "IP Address"),
);

'x' is the default escape character.

Example


import 'package:flutter/material.dart';
import 'package:masked_text_field/masked_text_field.dart';

void main() {
  runApp(const MyApp());
}

class MyApp extends StatelessWidget {
  const MyApp({Key? key}) : super(key: key);

  // This widget is the root of your application.
  @override
  Widget build(BuildContext context) {
    return MaterialApp(
      title: 'Flutter Demo',
      theme: ThemeData(
        primarySwatch: Colors.blue,
      ),
      home: const HomePage(title: 'Masked Text Field'),
    );
  }
}

class HomePage extends StatefulWidget {
  final String title;
  const HomePage({Key? key, required this.title}) : super(key: key);

  @override
  State<HomePage> createState() => _HomePageState();
}

class _HomePageState extends State<HomePage> {

  var ipController = TextEditingController();
  var dateController = TextEditingController();
  var phoneController = TextEditingController();

  @override
  Widget build(BuildContext context) {
    return Scaffold(
      appBar: AppBar(
        title: Text(widget.title),
      ),
      body: Padding(
        padding: const EdgeInsets.all(16.0),
        child: Column(
          mainAxisAlignment: MainAxisAlignment.center,
          crossAxisAlignment: CrossAxisAlignment.start,
          children: [
            const Text('Enter IP Address'),
            const SizedBox(height: 5,),
            MaskedTextField(
              textFieldController: ipController,
              inputDecoration: const InputDecoration(
                hintText: '192.192.192.192',
                  counterText: ""
              ),
              autofocus: true,
              mask: 'xxx.xxx.xxx.xxx',
              maxLength: 15,
              keyboardType: TextInputType.number,
              onChange: (String value) {
                print(value);
              },
            ),
            const SizedBox(height: 10,),
            const Text('Enter Date'),
            const SizedBox(height: 5,),
            MaskedTextField(
              textFieldController: dateController,
              inputDecoration: const InputDecoration(
                  hintText: 'DD/MM/YYYY',
                  counterText: ""
              ),
              autofocus: true,
              mask: 'xx/xx/xxxx',
              maxLength: 10,
              keyboardType: TextInputType.number,
              onChange: (String value) {
                print(value);
              },
            ),
            const SizedBox(height: 10,),
            const Text('Enter Phone Number'),
            const SizedBox(height: 5,),
            MaskedTextField(
              textFieldController: phoneController,
              inputDecoration: const InputDecoration(
                  hintText: '98765-43210',
                  counterText: "",
                prefixText: '+91 ',
              ),
              autofocus: true,
              mask: 'xxxxx-xxxxx',
              maxLength: 11,
              keyboardType: TextInputType.number,
              onChange: (String value) {
                print(value);
              },
            ),
          ],
        ),
      ),
    );
  }
}

Contributing

Pull requests are welcome. For major changes, please open an issue first to discuss what you would like to change.

Categorias

Repositório-fonte

Projetos que usam este pacote

Ainda não há dados.