问题描述
我正在尝试使用Flutter在Android Studio上制作计算器应用。
我如何拥有一个TextField(或任何其他小部件),可以通过电话键盘或单击应用程序(计算器)中提供的数字键盘来输入数字?
当用户按下操作按钮(+,-,*,/)时,如何将当前文本放入变量中的TextField中,然后清空Field以便能够键入更多数字?
解决方法
使用key
显示计算器屏幕。
TextFormField(
key: Key(calculatorValue.toString()),keyboardType: TextInputType.number,decoration: InputDecoration(
labelText: 'Total',),
当用户点击一个加号按钮时: 例如,“ 101”将变为“ 101 +”
InkWell(
onTap: (){
setState(() {
calculatorValue = calculatorValue.toString() + '+';
});
},child: Container(
width: 100
height: 50,child: Text('+')
)
)
,
我假设您正在创建一个带有显示器的计算器,可以在其中用键盘或按按钮将显示的操作或数字添加到显示器上。
将TextEditingController
分配到显示器的文本字段
final displayController = TextEditingController();
TextField(
controller: displayController
...
),
只需轻按一下即可触发操作按钮:
setState(() {
displayController.text += ' + '; // assuming add operation
});
相反,为了评估显示屏上的最终表达,我建议研究math_expressions之类的预制库