如何通过按钮清除Flutter屏幕上的所有不同变量?
如何通过按钮清除Flutter屏幕上的所有不同变量?
我对Flutter还比较新,想知道如何清除屏幕上的所有输入字段。
由于我没有使用表单字段,所以无法使用重置函数。我有一个重置按钮,当我点击它时,希望重新初始化所有输入字段并刷新屏幕。
以下是我的变量:
bool _check2 = false;
bool _check3 = false;
bool _check4 = false;
int taxYear = DateTime.now().year;
TextEditingController taxDueController = TextEditingController();
DateTime? payoffDate;
DateTime? filingTaxDate;
bool? filingEx1;
bool? filingEx2;
DateTime? noticeDate;
TextEditingController adjustmentTaxController = TextEditingController();
DateTime? installmentStartDate;
DateTime? installmentEndDate;
DateTime? levyDate;
int? noOfPayment;
DateTime? payment1Date;
TextEditingController payAmount1Controller = TextEditingController();
DateTime? payment2Date;
TextEditingController payAmount2Controller = TextEditingController();
DateTime? payment3Date;
TextEditingController payAmount3Controller = TextEditingController();
DateTime? payment4Date;
TextEditingController payAmount4Controller = TextEditingController();
bool detailedComputation = false;
DateTime payoffDateV0 = DateTime.now();
DateTime dateInNotice = DateTime.now();
final int _startYear = 2010;
问题出现的原因是需要在Flutter屏幕上使用一个按钮来清除所有不同的变量。解决方法是使用Stateful Widget和setState来更新在UI中使用的变量。使用setState可以在Stateful Widget中更新字段的值为null/empty,这会告诉Flutter重新构建表单字段。对于控制器,可以使用clear方法来清除,可以参考这个答案:How to add clear button to TextField Widget。以下是一个示例代码:
void resetButtonClicked() {
setState(() {
myVar = null;
// clear other variables
});
}
在这个示例中,resetButtonClicked函数使用了setState来更新myVar变量的值为null,以及清除其他变量。通过在按钮点击时调用resetButtonClicked函数,即可清除所有不同的变量。