我使用Intl库是因为我希望千位数除以相对符号(例如.)。
然后我想这样:12230修改为:12.230(在我的区域设置中)
我想使用Intl库,因为它有区域设置自动化。
我的代码是:
final TextEditingController kcalEditingController =
TextEditingController();
kcalEditingController.addListener(() => setState(() {
if (kcalEditingController.text.length > 3) {
NumberFormat numberFormat =
NumberFormat.decimalPattern(Platform.localeName);
kcalEditingController.text = numberFormat.format(int.parse(
kcalEditingController.text
.replaceAll(RegExp('[.,]'), '')));
}
}));
无论如何当我试着插入:1254一切都没事:结果1.254
现在键入数字5,新结果为:51.254(而非12.545)
此外,在4位数字之后,0(零)数字停止响应...
正如我所看到的,在输入第四个数字后,调用.format函数,光标移动到开始(在我的例子中,在数字1之前),我不能,即使手动或用鼠标,移动到最后一个位置(即使在我的例子中,在数字4之后)。
1条答案
按热度按时间k2arahey1#
您应该使用TextInputFormatter,如下列程式码片段所示:
第一个