如何在按键时更改TextField的文本?

问题描述

我正在尝试使用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之类的预制库