flutter 我正在尝试添加CheckboxListTile,但复选框的值不更新

kx1ctssn  于 2023-03-24  发布在  Flutter
关注(0)|答案(2)|浏览(178)

我试图添加一个CheckboxListTile,但该复选框的值不更新它总是保持假,我能做什么?需要帮助,这里是代码一个有。我与Flutter工作

class _DashboardState extends State<Dashboard> {
  bool isChecked1 = true;
  TextEditingController controlNombre = TextEditingController();

  TextEditingController controlMail = TextEditingController();

  GlobalKey<FormState> keyForm = GlobalKey<FormState>();

  @override
  Widget build(BuildContext context) {
    return Scaffold(
        resizeToAvoidBottomInset: false,
        appBar: AppBar(
          backgroundColor: const Color(0xffff0082),
          shadowColor: Colors.white,
          title: const Text('Captura de Información'),
        ),`
        body:Form(
          key: keyForm,
          child: ListView(
              padding: const EdgeInsets.fromLTRB(20.0, 40.0, 20.0, 10.0),
              children: [
                Column(
                  mainAxisAlignment: MainAxisAlignment.center,
                  crossAxisAlignment: CrossAxisAlignment.center,
                  children: [
                    TextFieldServices(
                      'Ingrese Nombre Completo',
                      controlNombre,
                      validateText: ValidateText.nombre,
                    ),
                    CheckboxListTile(
                      title: const Text(
                        'Acepto Términos y Condiciones',
                      ),
                      autofocus: false,
                      activeColor: const Color(0xffff0082),
                      checkColor: Colors.white,
                      selected: isChecked1,
                      value: isChecked1,
                      onChanged: (bool? value) {
                        setState(() {
                          isChecked1 = value ?? false;
                        });
                      },
                      controlAffinity: ListTileControlAffinity.leading,
                      tristate: true,
                    ),
                  ]
                 ],
                ),
              ]),
            ));
           }
          }

我已经有了一个变量bool isChecked1 = false;,我还注意到,如果我将isChecked的值更改为true,现在复选框始终保持为true。
我需要的复选框更改为真,它也不会得到颜色时,它的选择。

vecaoik1

vecaoik11#

确保在构建方法之外定义isChecked1

bool isChecked1 = false;
  @override
  Widget build(BuildContext context) {
9gm1akwq

9gm1akwq2#

尝试在这段代码之外创建一个布尔变量,例如。在声明你的类之后。创建一个接收布尔参数的函数,并在函数内部操作你的外部变量。此外,在所有需要根据你的布尔变量改变状态的地方使用这个布尔变量。我希望它能帮助你。

相关问题