use*_*175 10 controller textfield dart flutter
我正在尝试学习如何将TextField与MaskTextInputFormatter正确使用。我还使用控制器为其设置初始值。但是,当用户按下退格键时,所有文本都会被删除,而不是仅删除 1 个字符。
有人知道如何正确设置它吗?我还尝试通过控制器更改“选择”属性,但没有任何改变。
有状态:
// 这将初始文本设置到 TextField 中
class _ErrosState extends State<Erros>
{
var valorController = TextEditingController(
text: "(91) 12345-1234");
Run Code Online (Sandbox Code Playgroud)
// __________________________________________________
//无状态
class CadastroTelefonePage extends StatelessWidget {
@override
Widget build(BuildContext context) {
return MaterialApp(
title: 'Flutter Demo',
home: Scaffold(
body:
TextField(
controller: _ErrosState().valorController,
inputFormatters: [MaskTextInputFormatter(
mask: '(##) #####-####',
filter: {"#": RegExp(r'[0-9 ]')})
],
onChanged: (text) {
_ErrosState.input = text;
},
obscureText: false,
decoration: InputDecoration(
border: OutlineInputBorder(),
labelText: '(XX) XXXXX-XXXX',
),
),
),
Run Code Online (Sandbox Code Playgroud)
小智 3
像这样将初始文本添加到蒙版中
final phoneFormatter = MaskTextInputFormatter(
mask: '### ###-##-##',
initialText: phoneNumber,
filter: {"#": RegExp(r'[0-9]')},
);
Run Code Online (Sandbox Code Playgroud)