我的颤振应用程序中有一个 TextField,用于帮助输入计算器功能的数字。对于此 TextField,我已将键盘设置为仅数字,使用
keyboardType: TextInputType.number
现在,这可以完美运行,从某种意义上说,它确保只出现数字输入键盘。该键盘允许用户输入从 0 到 9 的数字以及小数点。问题是,它不会阻止用户输入多个小数点。一旦用户添加了多个,它会使数字无效并且计算器不起作用。
本质上,我需要做的是确保用户只能输入 1 个小数点和数字,而不能输入其他字符。
我在这个论坛的另一个问题上遇到了这个inputFormatters
功能,我试着像这样使用它:
TextField(
inputFormatters: <TextInputFormatter>[
FilteringTextInputFormatter.allow(RegExp("[0-9].")),
], // Only numbers and a decimal point can be entered
),
虽然这确实有助于确保只输入数字和小数点,但它不会阻止输入多个小数点,而应该只输入一个小数点。
如何编辑此过滤规则,或者我还能做什么,以确保只能输入 1 个小数点,以确保数字始终采用正确的格式(即始终是整数或双精度数)?
谢谢!