flutter - 如何获取“TextField”的更新?
问题描述
我想在文本表单字段中分隔每个 3 个字符串并显示它
我已经尝试过regex
我可以在终端中获取它但我无法在使它看起来像终端的文本表单字段中显示它,
在左侧输入图像描述
我当我打印它时有我想要的东西,但是右手边我有我的 textformfield
我想完全像终端一样显示它,但在 textformfield 中这是我的代码
,如果您需要更多信息,请告诉我
import 'package:flutter/material.dart';
class AddTransication extends StatefulWidget {
@override
_AddTransicationState createState() => _AddTransicationState();
}
class _AddTransicationState extends State<AddTransication> {
RegExp reg_ex = new RegExp(r'(\d{1,3})(?=(\d{3})+(?!\d))');
Function mathFunc = (Match match) => '${match[1]},';
@override
Widget build(BuildContext context) {
return Scaffold(
appBar: AppBar(
title: Text("Test Screen"),
actions: <Widget>[
FlatButton(
textColor: Colors.white,
onPressed: () {},
child: Text("Save"),
shape: CircleBorder(side: BorderSide(color: Colors.transparent)),
),
],
),
body: SafeArea(
child: Form(
child: Column(
children: [emailField(reg_ex, mathFunc)],
),
),
),
);
}
Widget emailField(reg_ex, mathFunc) {
return TextFormField(
onChanged: (str) {
String result = str.replaceAllMapped(reg_ex, mathFunc);
print(' $result');
},
keyboardType: TextInputType.emailAddress,
decoration: InputDecoration(
labelText: 'Email Address',
hintText: 'you@example.com',
),
);
}
}
更新 !
我还希望它返回一个有效的 int,就像我写 1000 时它应该返回 10,000,我已经用正则表达式做到了,但我想在那里显示它解决方案
您想要显示文本的方式称为“文本屏蔽”。有一个图书馆可以帮助您制作此类文本。
库 1:https ://pub.dev/packages/flutter_masked_text
库 2:https ://pub.dev/packages/mask_text_input_formatter
您可以使用这些库中的任何一个来解决您的问题。祝你好运。
推荐阅读
- android - 导航到第二个屏幕时,我的代码无法识别我的班级
- angular - MAT-选择所选选项不改变颜色
- machine-learning - 使用 LSTM 生成助记符 如何确保我的模型使用损失函数生成有意义的句子?
- java - 使用 lambda 或 Stream API 合并流以生成交替序列
- powershell - Powershell 上的 Get-ChildItem
- pytorch - 组装需要渐变的 PyTorch `Tensor` 的有效方法
- c++ - 在 Windows 10 Visual Studio 2017 上为 FTPS 设置 Curl
- maven - 从 Maven 存储库中获取最新版本
- javascript - 如何检查表的父类
- gdb - GDB“服务器”命令