如何在 Flutter 中重置所有复选框项及其附加数据?

问题描述 投票:0回答:1

我正在 flutter 中实现一个应用程序,其主页上有复选框。用户有机会从列表中选择项目,然后可以共享。到目前为止一切都很好。但是,在共享之后,我想向用户添加一个重置选项,以便他可以从头开始。例如,取消选中并重置所有项目以及与选中的项目相关的数据。我如何使用重置按钮来执行此操作?

flutter dart flutter-layout
1个回答
1
投票

您可以通过在 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()
即可。

© www.soinside.com 2019 - 2024. All rights reserved.