我正在 flutter 中实现一个应用程序,其主页上有复选框。用户有机会从列表中选择项目,然后可以共享。到目前为止一切都很好。但是,在共享之后,我想向用户添加一个重置选项,以便他可以从头开始。例如,取消选中并重置所有项目以及与选中的项目相关的数据。我如何使用重置按钮来执行此操作?
您可以通过在 ResetButton 的
onPressed
属性中将它们初始化为初始值并调用 setState((){})
来简单地重置复选框或任何其他控件小部件。请参阅下面的代码了解如何执行此操作:
import 'package:flutter/material.dart';
class MyForm extends StatefulWidget {
MyFormState createState() => MyFormState();
}
class MyFormState extends State<MyForm> {
bool checkBoxValue1 = false;
@override
Widget build(BuildContext context) {
return ListView(
children: <Widget>[
Text(
"CheckBox1 Value : $checkBoxValue1",
style: TextStyle(fontSize: 20, fontWeight: FontWeight.bold),
),
Form(
child: FormField<bool>(
initialValue: false,
builder: (FormFieldState<bool> state) {
return Row(
mainAxisAlignment: MainAxisAlignment.spaceEvenly,
children: <Widget>[
Checkbox(
value: checkBoxValue1,
onChanged: (value) {
checkBoxValue1 = value;
setState(() {});
},
),
const Text("Check Box 1")
],
);
},
),
),
RaisedButton(
child: const Text("Reset"),
onPressed: () {
//Reset All Checkboxes
checkBoxValue1 = false;
//checkBoxValue2 = false;
//checkBoxValue3 = false;
//checkBoxValue4 = false;
setState(() {});
},
)
],
);
}
}
您还可以向
GlobalKey<FormState> _key
提供 Form
,如果您有很多文本字段、单选按钮等并希望将它们重置为初始值,只需调用 _key.currentState.reset()
即可。