我试图添加一个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。
我需要的复选框更改为真,它也不会得到颜色时,它的选择。
2条答案
按热度按时间vecaoik11#
确保在构建方法之外定义
isChecked1
。9gm1akwq2#
尝试在这段代码之外创建一个布尔变量,例如。在声明你的类之后。创建一个接收布尔参数的函数,并在函数内部操作你的外部变量。此外,在所有需要根据你的布尔变量改变状态的地方使用这个布尔变量。我希望它能帮助你。