Code Monkey home page Code Monkey logo

Comments (8)

nk-d avatar nk-d commented on July 30, 2024 6

Move new MaskTextInputFormatter() outside of widget that is being updated.

from mask_text_input_formatter.

marquezea avatar marquezea commented on July 30, 2024 1

I have a similar issue and the MaskTextInputFormatter is already out of widget.

In my case I`m using with a TextFormField and setting an initial value with a controller.
When I put the field on focus and type backspace to clear just the last character the entire field is cleared.

Removing the mask from the field it works fine.

Here is my code to reproduce the problem.
Backspace on the name field works but in the phone field don't work properly.

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

final phoneMaskFormatter = MaskTextInputFormatter(mask: '(###) ### ####');

class Test extends StatefulWidget {
const Test({Key? key}) : super(key: key);

@OverRide
State createState() => _TestState();
}

class _TestState extends State {
final _formKey = GlobalKey();

late TextEditingController _nameController;
late TextEditingController _phoneController;

var myData = {'name': 'William', 'phone': '(305) 786 1234'};

@OverRide
void initState() {
super.initState();
_nameController = TextEditingController();
_phoneController = TextEditingController();

_nameController.text = myData['name']!;
_phoneController.text = myData['phone']!;

}

@OverRide
void dispose() {
super.dispose();
_nameController.dispose();
_phoneController.dispose();
}

@OverRide
Widget build(BuildContext context) {
return Scaffold(
body: SafeArea(
child: Form(
key: _formKey,
child: Container(
padding: EdgeInsets.all(50),
child: Column(
children: [
Text('Name: ${myData['name']}'),
Text('Phone: ${myData['phone']}'),
SizedBox(height: 100),
TextFormField(
controller: _nameController,
onChanged: (value) {
// do my stuff
setState(() {
myData['name'] = value;
});
}),
TextFormField(
controller: _phoneController,
inputFormatters: [phoneMaskFormatter],
onChanged: (value) {
// do my stuff
setState(() {
myData['phone'] = value;
});
}),
],
),
),
),
),
);
}
}

from mask_text_input_formatter.

allantivic avatar allantivic commented on July 30, 2024 1

I'm having a similar problem too, aparentely on insert a value by controller, the formatEditUpdate is not triggered, and getUnmask Text() return the value before you set de text by controller.

from mask_text_input_formatter.

venomanse avatar venomanse commented on July 30, 2024

I'm having a similar problem too, aparentely on insert a value by controller, the formatEditUpdate is not triggered, and getUnmask Text() return the value before you set de text by controller.

Having the same issue

from mask_text_input_formatter.

MrErkinjon avatar MrErkinjon commented on July 30, 2024

final _phoneInputFormatter = MaskTextInputFormatter(mask: '+998 (##) ### ## ##');
I have flutter sdk 3.13.6.
The error is not formatting when pressing numbers 8 and 9 and the value is coming to emty.

from mask_text_input_formatter.

MrErkinjon avatar MrErkinjon commented on July 30, 2024

2023-11-27 21 52 32

from mask_text_input_formatter.

MrErkinjon avatar MrErkinjon commented on July 30, 2024

Please help me

from mask_text_input_formatter.

siqwin avatar siqwin commented on July 30, 2024

The formatter has internal state. Therefore, it is required that it be moved outside the build method. If the TextEditingController of TextField has an initial value, then that value must also be specified in the formatter constructor (or later using updateMask method) so that they are initially synchronized.

from mask_text_input_formatter.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.