Comments (8)
Move new MaskTextInputFormatter()
outside of widget that is being updated.
from mask_text_input_formatter.
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.
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.
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.
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.
from mask_text_input_formatter.
Please help me
from mask_text_input_formatter.
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)
- Can't use addlistener. HOT 1
- How I input negative numbers and decimal numbers? HOT 1
- Input erases one by one when mask is only letters(^a-zA-Z) HOT 1
- MaskTextInputFormatter erases characters when I do the insertion HOT 2
- updateMask returns TextEditingValue with empty text property HOT 1
- Updating the text directly in the controller interferes onChanged HOT 1
- 2.5.0 release code HOT 1
- Masked Text with static suffix HOT 1
- MaskTextInputFormatter paste handling improvement HOT 3
- Mask with negative sign and decimal HOT 3
- Support multiple characters validation HOT 1
- The formatter gives an error when entering a number
- Initial Text HOT 1
- [Regression ]Phone Formatter: wrong cursor position if type 1 as the first character with '+1 (###) ###-####' mask
- There is a problem entering mask text: masktext HOT 4
- Not working backspace in this case
- BUG: Value is lost after programmatic change HOT 3
- [BUG] Does not allow you to enter text HOT 3
- _resultTextArray accumalate old values, but It must init with old value HOT 2
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
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.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from mask_text_input_formatter.